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 <html>
<head> <script type="text/javascript"> //检查是否已设置cookie function getCookie(c_name)
{
if (document.cookie.length>0)
{
c_start=document.cookie.indexOf(c_name + "=")
if (c_start!=-1)
{
c_start=c_start + c_name.length+1
c_end=document.cookie.indexOf(";",c_start)
if (c_end==-1) c_end=document.cookie.length
return unescape(document.cookie.substring(c_start,c_end))
}
}
return "" } //设置cookie function setCookie(c_name,value,expiredays)
{
var exdate=new Date() exdate.setDate(exdate.getDate()+expiredays) //通过将值写入document.cookie对象中来设置cookie document.cookie=c_name+ "=" +escape(value)+
((expiredays==null) ? "" : ";expires="+exdate.toGMTString())
}
function checkCookie()
{
username=getCookie("username")
if (username!=null && username!="")
{alert("Welcome again "+username+"!")}
else
{
username=prompt("Please enter your name:","")
if (username!=null && username!="")
{
setCookie("username",username,365)
}
}
}
</script>
</head>
<body onLoad="checkCookie()">
</body>
</html>
删除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 <html>
<head> <script type="text/javascript"> //检查是否已设置cookie function getCookie(c_name)
{
if (document.cookie.length>0)
{
c_start=document.cookie.indexOf(c_name + "=")
if (c_start!=-1)
{
c_start=c_start + c_name.length+1
c_end=document.cookie.indexOf(";",c_start)
if (c_end==-1) c_end=document.cookie.length
return unescape(document.cookie.substring(c_start,c_end))
}
}
return "" } //设置cookie function setCookie(c_name,value,expiredays)
{
var exdate=new Date() exdate.setDate(exdate.getDate()+expiredays) //通过将值写入document.cookie对象中来设置cookie document.cookie=c_name+ "=" +escape(value)+
((expiredays==null) ? "" : ";expires="+exdate.toGMTString())
}
function checkCookie()
{
username=getCookie("username")
if (username!=null && username!="")
{alert("Welcome again "+username+"!")}
else
{
username=prompt("Please enter your name:","")
if (username!=null && username!="")
{
setCookie("username",username,365)
}
}
}
</script>
</head>
<body onLoad="checkCookie()">
</body>
</html>
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇: 通过php-fpm status判断pm.max_childern的值应该设置为多少