可以用setcookie() 或setrawcookie() 函数来设置cookie。也可以通过向客户端直接发送http头来设置.
session使用过期时间设为0的cookie,并且将一个称为session ID的唯一标识符(一长串字符串),在服务器端同步生成一些session文件(可以自己定义session的保存类型),与用户机关联起来.web应用程序存贮与这些session相关的数据,并且让数据随着用户在页面之间传递.
访问网站的来客会被分配一个唯一的标识符,即所谓的会话ID。它要么存放在客户端的cookie,要么经由URL 传递。会话支持允许用户注册任意数目的变量并保留给各个请求使用。当来客访问网站时,PHP 会自动(如果session.auto_start 被设为1)或在用户请求时(由session_start() 明确调用或session_register() 暗中调用)检查请求中是否发送了特定的会话ID。如果是,则之前保存的环境就被重建。2.1 sessionID的传送2.1.1 通过cookie传送sessin ID
使用session_start()调用session,服务器端在生成session文件的同时,生成session ID哈希值和默认值为PHPSESSID的session name,并向客户端发送变量为(默认的是)PHPSESSID(session name),值为一个128位的哈希值.服务器端将通过该cookie与客户端进行交互.
<?php
// session start
session_start(); // 开始一个会话,如果要使用session程序最前面一定要加上这句
$_SESSION['user_id'] = ‘123′;//给一个session 变量赋值,如果该变量不存在即创建
echo $_SESSION['user_id'];//访问 session变量
$_SESSION = array();//清空所有session变量
session_destroy();//清除会话ID
// session end
// cookie start
setcookie(’user_id’,123);//创建一个cookie变量user_id=123
echo $_COOKIE['user_id'];//访问 cookie变量 和变通变量一样
setcookie(’user_id’,0,time()-1);//删除cookie变量
// codie end
// 该代码不可运行,只是将所有使用方法在这里列出,实际应该不同功能在不同页面使用,将在下面的例子中演示
?>
<?php
// session start
session_start(); // 开始一个会话,如果要使用session程序最前面一定要加上这句
$_SESSION['user_id'] = ‘123′;//给一个session 变量赋值,如果该变量不存在即创建
echo $_SESSION['user_id'];//访问 session变量
$_SESSION = array();//清空所有session变量
session_destroy();//清除会话ID
// session end
// cookie start
setcookie(’user_id’,123);//创建一个cookie变量user_id=123
echo $_COOKIE['user_id'];//访问 cookie变量 和变通变量一样
setcookie(’user_id’,0,time()-1);//删除cookie变量
// codie end
// 该代码不可运行,只是将所有使用方法在这里列出,实际应该不同功能在不同页面使用,将在下面的例子中演示
?>
cookie,session 是WEB应用程序保持用户状态的方法
cookie是保存的客户端的信息,由客户端连接服务器时发送到服务器的。
session是保存在服务端的信息,从这个角度session相对cookie更安全
当会话创建时服务器返回给客户端一个加密后的session id以标识用户身份,session id 一般保存在cookie当cookie不可用时由URL传递
上面的代码演示如何创建和使用session cookie变量