PHP cookie,session的使用与用户自动登录功能实现方法分析
本文实例讲述了PHPcookie,session的使用与用户自动登录功能实现方法。分享给大家供大家参考,具体如下:
cookie的使用
//生成cookie //注释:setcookie()函数必须位于标签之前。 //setcookie(name,value,expire,path,domain);//名称,值,过期时间,有效路径,有效域名 //path,可选;如果路径设置为"/",那么cookie将在整个域名内有效.如果路径设置为"/test/",那么cookie将在test目录下及其所有子目录下有效。默认的路径值是cookie所处的当前目录。 //domain,可选;为了让cookie在example.com的所有子域名中有效,您需要把cookie的域名设置为".example.com"。当您把cookie的域名设置为www.example.com时,cookie仅在www子域名中有效。默认当前域名。 setcookie("user","AlexPorter",time()+3600); setcookie("userid","1000569852",time()+3600); //获取 var_dump($_COOKIE); //isset()函数来确认是否已设置了cookie: if(isset($_COOKIE["user"])){ echo"Welcome".$_COOKIE["user"]."!
"; } else{ echo"Welcomeguest!
"; } //当删除cookie时,您应当使过期日期变更为过去的时间点。 setcookie("user","",time()-3600);
session的使用
//session特定:可供应用程序中的所有页面使用;会话信息是临时的,在用户离开网站后将被删除。 //虚拟主机用户。设置一个存放目录,需要可读写权限 $savePath=getcwd().'/session_save_dir/'; //echo$savePath; session_save_path($savePath);//session_start开启前。 session_id('phpjianlong');//session_start()函数之前调用session_id();命名方式同变量 session_start(); //存储和取值 $_SESSION['views']=123456789; $_SESSION['name']='php建龙'; $_SESSION['array']=array('a','b','c','d'); echo"Pageviews=".$_SESSION['views']; var_dump($_SESSION); //判断是否存在 if(isset($_SESSION['views'])){ $_SESSION['views']=$_SESSION['views']+1; } else{ $_SESSION['views']=1;//不存在赋值 } echo"Views=".$_SESSION['views']; //session的删除 unset($_SESSION['name']); var_dump($_SESSION); //注释:session_destroy()将重置session,您将失去所有已存储的session数据。 session_destroy();//不带参数 session_start();//再次开启session是,重新初始化$_SESSION数组; var_dump($_SESSION); //获取/设置当前会话ID。;浏览器会自动生成名为PHPSESSID的cookie echosession_id(); session_id('phpjianlong');//session_start()函数之前调用session_id();命名方式同变量
session和cookie的区别:
1、session在服务器,cookie存储在浏览器
2、session可以存储数组,cookievalue只能是字符串
3、session不能设置有效期,cookie可以设置有效期
4、session基于cookie判断用户信息,禁用cookie,session受影响不能用。还可以手动通过URL传值、隐藏表单传递SessionID。用文件、数据库等形式保存SessionID,
URL形如:http://www.openphp.cn/index.php?PHPSESSID=bba5b2a240a77e5b44cfa01d49cf9669
用户自动登录的实现
//方法1:Cookie,在Cookie中保存用户名和密码(可能是md5加密后字符串),并在每次请求页面的时候进行验证。如果用户名和密码存储在数据库,每次都要执行一次数据库查询,给数据库造成多余的负担。因为客户端Cookie中的信息是可能被用户查看和修改。不安全舍弃此方法。 //方法2:session,用cookie长期保存sessionid; //系统临时文件夹找到这个Session文件,一般文件名形如:sess_4c83638b3b0dbf65583181c2f89168ec,后面是32位编码后的随机字符串。用编辑器打开它,看一下它的内容: //变量名|类型:长度:值; //设置Session的生存期: session_start(); //保存5天 $lifeTime=5*24*3600; setcookie(session_name(),session_id(),time()+$lifeTime,"/"); //之后此浏览器在此输入对应网址,服务器获取cookie保存的sessionid;根据sessionid的内容判断,实现自动登录。
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP中cookie用法总结》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》及《php字符串(string)用法总结》
希望本文所述对大家PHP程序设计有所帮助。