本篇文章是对PHP中的Session和Cookie进行了详细的分析介绍,需要的朋友参考下
在一个页面设置一个cookie时,必须刷新或到下一个页面才可以用 $_COOKIE 得到变量的值.
复制代码 代码如下:
setcookie('my_cookie[]', 1);
setcookie('my_cookie[]', 2);
print_r($_COOKIE); // Array ( [my_cookie] => Array ( [0] => 1 ))
// 数组的值添加是添加成功了,不过索引没有变,后面的数据将前的数据覆盖了!
由此得到
my_cookie[],默认指向数据的第一元素的位置,即索引为
0 的位置. 注意与php中的不一样! 以后用cookie数据记住要指定数组元素索引哦!
$my_cookie[] = 1;
$my_cookie[] = 2;
print_r($my_cookie); //Array ( [0] => 1 [1] => 2)
?>
复制代码 代码如下:
setcookie('user_name_1', 'zhaofei299', time()+3600); // 生存期为 1 个小时
setcookie('user_name_2', 'ZHAOFEI299', time()+3600); // 生存期为 1 个小时
?>
复制代码 代码如下:
setcookie('user_name_1');
// 第一种
setcookie('user_name_2', "", time()-1); // 第二种
print_r($_COOKIE);
// 刷新页面2下以上会输出 Array ( [user_name_1] => )
/*为什么超级全局变量 $_COOKIE 中的 user_name_1 没有被删除(变量为空并不代表不存在),而
user_name_2被删除了? 那是因为两个删除变量的方式不同!
第一种: 是设置了 cookie 的生存期, 只不过是将它的值默认设置为空,生存期为与浏览器一样,浏览器
关闭时,cookie才会删除!所以当重新打开一个浏览器,输出地址时,才会发现 cookie 变量全部被删除了!
将2.php 中两个 setcookie() 函数部分注释掉看看(重新输出了地址)!
第二种: 也是设置了 cookie 的生存期,是使 cookie 的生存期一定过期, cookie 也就被删除,所以刷
新页面,客户端向服务器端发送 cookie 时, $_COOKIE 并没有能够得到该cookie变量的值!
*/
?>
复制代码 代码如下:
session_start();
print_r($_COOKIE);
?>
复制代码 代码如下:
session_start();
header('content-type:text/html;charset=utf-8');
$_SESSION['a'] = 'a';
$_SESSION['b'] = 'b';
unset($_SESSION);
//测试后,再注释下看看
$_SESSION['user'] = 'zhaofei299';
echo 'SESSION_ID: '.session_id().'
';
echo '测试下';
?>
复制代码 代码如下:
session_start();
echo $_SESSION['user'];
echo session_id();
//会话变量改变了
?>
复制代码 代码如下:
session_start();
echo defined('SID')?'true':'false'; // true
echo SID; //什么也没有?
?>
复制代码 代码如下:
session_destroy();
// 第一步: 删除服务器端session文件,这使用
setcookie(session_name(),'',time()-3600); // 第二步: 删除实际的session:
$_SESSION = array();
// 第三步: 删除$_SESSION全局变量数组
?>
复制代码 代码如下: