首页 > 代码库 > 2017.8.01
2017.8.01
一、sessio变量的应用实例。
1、做个简单的登录界面,获取所需的值。PHP文件里面可以写有HTML
<?php session_start();//必须先执行此句,前面不要有任何输出。 header("Content-type:text/html;charset=utf-8");//解决中文乱码 if(isset($_SESSION[‘username‘])){ header(‘location:user.php‘);//跳转函数,location后面为地址。
} ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>用户登陆</title> </head> <body>
<form action="deng.php" method="post"> 用户名:<input type="text" name="username" value="http://www.mamicode.com/admin" /><br /> 密码:<input type="password" name="password" value="http://www.mamicode.com/123456" /><br /> <input type="submit" value="http://www.mamicode.com/提交" /> </form>> </body> </html>
2、获取所得数值,并把其赋值给session变量。后台连接数据库验证所得值是否正确。
<?php /** */ session_start();//使用session变量就必须开启, header("Content-type:text/html;charset=utf-8");//解决中文乱码 if(isset($_POST[‘username‘])&&isset($_POST[‘password‘])){ //这里需要查询数据库,目前只做简单判断 $username=$_POST[‘username‘]; $password=$_POST[‘password‘]; if($username==‘admin‘&&$password==‘123456‘)//此处没有查询数据库,使用已知的值
{ //设置session $_SESSION[‘username‘]=$username; header(‘location:user.php‘); //跳转到指定地方 }else{ echo "用户名和密码不匹配"; } }
3、在其他页面使用session变量。在其他页面通过之前设置好的session变量$_SESSION[‘username‘]从数据库获取其他所需数值。
<?php /** */ session_start(); header("Content-type:text/html;charset=utf-8");//解决中文乱码
if(isset($_SESSION[‘username‘])){ echo "恭喜".$_SESSION[‘username‘]."登陆成功<br />"; echo ‘<a href="http://www.mamicode.com/logout.php">退出登陆</a >‘; }else{ header(‘location:deng0.php‘); }
4、删除会话,删除会话id和会话变量以及客户端cookie值。退出登录时的操作。
<?php /** */ session_start(); header("Content-type:text/html;charset=utf-8");//解决中文乱码 /* //删除会话变量$_SESSION[‘user‘]="yangyang",不会删除session文件和session_Id session_unset(); echo session_Id(),‘<br />‘; //删除会话变量$_SESSION[‘user‘]="yangyang",不会删除session文件和session_Id $_SESSION=array(); echo session_Id(),‘<br />‘; //删除会话Id和会话文件,它不会删除内存中的会话变量$_SESSION[‘user‘]="yangyang" session_destroy(); print_r($_SESSION);echo session_Id(),‘<br />‘; */ //如果要删除会话Id和会话文件,并且清空会话变量,需要配合session_unset()来使用,此时服务器中的会话文件和Id和变量都被删除了 //但是客户端cookie还在 session_unset(); session_destroy(); //清空cookie会话Id的值,路径必须写上 setcookie(session_name(),session_id(),time()-10,‘/‘); echo "感谢使用!";
二、cookie变量的应用实例。
1、通过例子中的$_COOKIE[‘hist‘]变量存储用户最近10条浏览记录
<?php /*序列化和反序列化函数测试 $arr=[1=>‘a‘,2=>‘b‘,3=>‘c‘]; $a=serialize($arr);// echo $a; print_r(unserialize($a)); */ header("Content-type:text/html;charset=utf-8");//解决中文乱码
//1、获取URL地址,用到变量$_SERVER[‘REQUEST_URI‘] $url=$_SERVER[‘REQUEST_URI‘];//获取当前URL地址 //echo $url,‘<br />‘; //echo a,‘<br />‘; //2、将URL放入到cookie中 //用一个数组来保存URL,因为记录比较多用变量存储太麻烦 $arr=[]; //2、首先判断是否有浏览记录,如果有,则将当前URL放到浏览记录的最前面//反之,则新建一个浏览记录 if(isset($_COOKIE[‘hist‘])) { $arr=unserialize($_COOKIE[‘hist‘]);//变成数组,取出来的是字符串需要反序列化,因为下面要压入数组中 array_unshift($arr,$url);//压入数组,将URL地址放到历史记录最前面 $arr=array_unique($arr);//保证浏览记录不重复 //只保存最近10条浏览记录 if(count($arr)>10){ array_pop($arr);//弹出最早进入的一条数据 } //2、再次存放到cookie中 setcookie(‘hist‘,serialize($arr));//放入cookie中 }else{ $arr[]=$url;//将URL地址存入数组中 //1、首次设置cookie setcookie(‘hist‘,serialize($arr));//把数组序列化为字符串,存入$_COOKIE[‘hist‘] } echo "历史浏览记录<br />"; //print_r($arr); echo ‘<ol>‘; foreach($arr as $k=>$v){ //echo $v,‘<br />‘; echo ‘<li>‘.$v.‘</li>‘; } echo ‘</ol>‘; echo ‘<hr />‘; echo ‘<a href="http://www.mamicode.com/?id=‘.mt_rand(1,100).‘">随机产生一个Id</a >‘;
2017.8.01
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。