PHP和JS设置Cookies与session

cookies与session的区别与联系:1、Cookies储存在客户端,而session储存在服务器端
2、session是基于cookies而实现的,把SESSION_ID通过Cookie储存在客户端,每次请求时会将SESSION_ID加入HTTP中一起发送到客户端,从而寻找到该SESSION_ID所对应的用户的信息。
3、如果客户端禁止使用Cookies的话,可以将SESSION_ID附加在URL后面发送到服务器端。
1、在php中
设置Cookie:
setcookie(string name, string value, int expire,string path, string domain, int secure);
参数解释:name是cookie变量名称标识,你在php中将能象使用普通变量名相同来用他引用cookie变量。value是cookie变量的初始值,expire 表示该cookie变量的有效时间;path 为该cookie变量的相关路径;domain 表示cookie变量的网站;secure 则需在 https 的安全传输时才有效。
eg:setcookie("Cookie", "cookievalue",time()+3600, "/forum", ".php100.com", 1);
设置名为Cookie,值为cookievalue的Cookie,存在有效时间为1小时,只在php100.com网站下的/forum目录及其子目录下才有效。

删除cookie:
1、setcookie("cookiename")---用来删除指定cookie,当关闭浏览器时,该cookie会被删除
2、setcookie("cookiename","",time()-1)---将cookie设置为过期,使浏览器自动删除该cookie

设置session:
开启session:
session_start(void)

使用$_session[]数组为session赋值
eg:$_session["username"]='yanming'

session变量会被保存在服务器的某个文件下,该文件通过php.ini的session.save_path设置

销毁session:session_destroy(void)    //删除服务器端的session文件

删除某个session变量:unset($_session['sessionname'])

删除某个session:$_session=array();     //清空服务器端session文件的内容

当客户端禁止使用cookie时如何传递seeionID:在liunx服务器中,编辑PHP时使用了--enable-trans-sid配置选项,并且在运行时激活了session.user-trans-sid,系统会自动把sessionID附加到URL上传送

存储session最好的方式是使用mencached的NOSQL来缓存session。
1、使用session_set_save_handler(open,close,read,write,destory,gc)自定义session存储方式
2、修改php.ini中的session.save_handler和session.save_path两个选项,直接将session信息保存到memcached服务器中。

2、在JS中
由于JS是运行在客户端的脚本,而session是储存在服务器端的文件,所以JS一般无法设置session,而只能设置cookie









你可能感兴趣的:(php)