PHPCookies
㈠ 详解php中cookie和session的区别及cookie和session用法小结
一、区别:
1、cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
考虑到安全应当使用session。
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用COOKIE。
4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
5、所以个人建议:
将登陆信息等重要信息存放为SESSION
其他信息如果需要保留,可以放在COOKIE中
二、用法小结:
1、cookie:
1)如何创建 cookie?
setcookie() 函数用于设置 cookie。setcookie(name, value, expire, path, domain); //setcookie("user", "Alex Porter", time()+3600);
注释:setcookie() 函数必须位于 <html> 标签之前。
2)如何取回 Cookie 的值?
$_COOKIE 变量用于取回 cookie 的值。
使用 isset() 函数来确认是否已设置了 cookie:
3)如何删除 cookie?
当删除 cookie 时,您应当使过期日期变更为过去的时间点。//setcookie("user", "", time()-3600);
2、session:
1)如何创建 session?
session_start() 函数启动会话。
2)存储 Session 变量
$_SESSION 变量赋值
isset() 函数检测是否已设置
3)终结 Session
如果您希望删除某些 session 数据,可以使用 unset() 或 session_destroy() 函数。注释:session_destroy() 将重置 session,您将失去所有已存储的 session 数据。
㈡ PHP的cookies的问题,如何设置关闭浏览器的时候就清空cookies
用setCookie,把时间清空或者设置为0就可以了。
setcookie(name,value,expire,path,domain,secure)
比如代码:
setcookie("TestCookie",$value);
有时可能会报错,把时间设置为0就好了。
setcookie("TestCookie",$value,0);
㈢ php如何带cookies访问需要登录的网站
使用curl
CURLOPT_COOKIE 设定HTTP请求中"Cookie: "部分的内容。多个cookie用分号分隔,分号后带一个空格(例如, "fruit=apple; colour=red")。
CURLOPT_COOKIEFILE 包含cookie数据的文件名,cookie文件的格式可以是Netscape格式,或者只是纯HTTP头部信息存入文件。
CURLOPT_COOKIEJAR 连接结束后保存cookie信息的文件。
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url); // 请求的地址
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiesfile); // 连接结束后保存cookie信息的文件
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiesfile); // 请求时发送的cookie信息文件
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_exec($ch);
curl_close($ch);
㈣ 如何使用PHP操作cookie
PHP setcookie() 函数向客户端发送一个 HTTP cookie。cookie 是由服务器发送到浏览器的变量。cookie 通常是服务器嵌入到用户计算机中的小文本文件。每当计算机通过浏览器请求一个页面,就会发送这个 cookie。cookie 的名称指定为相同名称的变量。例如,如果被发送的 cookie 名为 "name",会自动创建名为 $user 的变量,包含 cookie 的值。
必须在任何其他输出发送前对 cookie 进行赋值。如果成功,则该函数返回 true,否则返回 false。
setcookie(name, value, expire, path, domain, secure)
name 必需。规定 cookie 的名称。
value 必需。规定 cookie 的值。
expire 可选。规定 cookie 的有效期。
path 可选。规定 cookie 的服务器路径。
domain 可选。规定 cookie 的域名。
secure 可选。规定是否通过安全的 HTTPS 连接来传输 cookie。
可以通过 $HTTP_COOKIE_VARS["user"] 或 $_COOKIE["user"] 来访问名为 "user" 的 cookie 的值。在发送 cookie 时,cookie 的值会自动进行 URL 编码。接收时会进行 URL 解码。如果不需要这样,可以使用 setrawcookie() 代替。
程序1:
设置并发送 cookie:
1 <?php
2 $value = "my cookie value";
3 // 发送一个简单的 cookie
4 setcookie("TestCookie",$value);
5 ?>
01 <html>
02 <body>
03 ...
04 ...
05 <?php
06 $value = "my cookie value";
07 // 发送一个 24 小时候过期的 cookie
08 setcookie("TestCookie",$value, time()+3600*24);
09 ?>
10 <html>
11 <body>
程序2:
检索 cookie 值的不同方法:
01 <html>
02 <body>
03 <?php
04 // 输出个别的 cookie
05 echo $_COOKIE["TestCookie"];
06 echo "<br />";
07 echo $HTTP_COOKIE_VARS["TestCookie"];
08 echo "<br />";
09 // 输出所有 cookie
10 print_r($_COOKIE);
11 ?>
12 </body>
13 </html>
程序输出:
1 my cookie value
2 my cookie value
3 Array ([TestCookie] => my cookie value)
程序3:
通过把失效日期设置为过去的日期/时间,删除一个 cookie:
1 <?php
2 // 把失效日期设置为一小时前
3 setcookie ("TestCookie", "", time() - 3600);
4 ?>
程序4:
创建一个数组 cookie:
01 <?php
02 setcookie("cookie[three]","cookiethree");
03 setcookie("cookie[two]","cookietwo");
04 setcookie("cookie[one]","cookieone");
05 // 输出 cookie (在重载页面后)
06 if (isset($_COOKIE["cookie"]))
07 {
08 foreach ($_COOKIE["cookie"] as $name => $value)
09 {
10 echo "$name : $value <br />";
11 }
12 }
13 ?>
程序输出:
1 three : cookiethree
2 two : cookietwo
3 one : cookieone
程序5:
view sourceprint?
1 /**
2 * 01.cookie设置
3 * */
4 function ssetcookie($var, $value, $life=0) {
5 global $_SGLOBAL, $_SC, $_SERVER;
6 setcookie($_SC['cookiepre'].$var, $value, $life?($_SGLOBAL['timestamp']+$life):0, $_SC['cookiepath'],$_SC['cookiedomain'], $_SERVER['SERVER_PORT']==443?1:0);
7 }
㈤ php设置好cookie如何在html中读出cookie
PHP生成cookie,HTML页面使用javaScript即可读取。操作示例如下:
<?php
//首先php生成cookie;
//demo.php
//开启session
session_start();
$name="";
setcookie("cname",$name,time()+3600,"/");
?>
2.HTML页面读取;
//index.html
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""
<htmlxmlns="
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
<title>JS读取cookie示例</title>
<style>
body{font-size:14px;line-height:22px;font-family:"微软雅黑",Verdana,Geneva,sans-serif;}
input,textarea{font-family:"微软雅黑",Verdana,Geneva,sans-serif;padding:3px;font-size:12px;}
h3{clear:both;}
li{padding:2px0;list-style:none;}
</style>
<scripttype="text/javascript">
functionget_cookie(cookieName){
//判断cookie是否存在
if(document.cookie.length>0){
pos=document.cookie.indexOf(cookieName+"=")
if(pos!=-1){
pos=pos+cookieName.length+1
last=document.cookie.indexOf(";",pos)
if(last==-1)last=document.cookie.length
returnunescape(document.cookie.substring(pos,last))
}
}
return"cookie不存在!";
}
</script>
</head>
<body>
<inputtype="button"value="获取cookie"onclick="alert(get_cookie('cname'));"/>
</body>
</html>