HTTP session cookie原理及应用
?
PHP 的COOKIE
??? cookie 是一种在远程浏览器端储存数据并以此来跟踪和识别用户的机制。?
??? PHP在http 协议的头信息里发送cookie,因此? setcookie()函数必须在其它信息被输出到浏览器前调用,这和对header()函数的限制类似。
------------------------------------------------------
??? 1.设置cookie:
??? a.可以用 setcookie()或 setrawcookie()函数来设置 cookie。也可以通过向客户端直接发送http头来设置。
??? eg:
??????????????????????? </head>
??????????????????????? <body>
???????????????????????????? 请登录:
?????????????????????????? <form name="login" method="post" action="mylogin1.php">
????????????????????????????? 用户名:<input type="text" name="name"><br>
????????????????????????????? 口 令:<input type="password" name="pass"><br>
????????????????????????????? <input type="submit" value="登录">
?????????????????????????? </form>
??????????????????????? </body>
???????????????????? </html>
????????????????? mylogin1.php
???????????????????? <?php
???????????????????? $name=$_POST['name'];
???????????????????? $pass=$_POST['pass'];
???????????????????? if(!$name || !$pass) {
???????????????????????? echo "用户名或密码为空,请<a href="login.html">重新登录</a>";
????????????????????????? die();
???????????????????? }
???????????????????? if (!($name=="laogong" && $pass=="123")) {
???????????????????????? echo "用户名或密码不正确,请<a href="login.html">重新登录</a>";
???????????????????????? die();
???????????????????? }
???????????????????? //注册用户
???????????????????? ob_start();
???????????????????? session_start();
???????????????????? $_SESSION['user']= $name;
???????????????????? $psid=session_id();
???????????????????? $fp=fopen("e:\\tmp\\phpsid.txt","w+");
???????????????????? fwrite($fp,$psid);
???????????????????? fclose($fp);
???????????????????? //身份验证成功,进行相关操作
???????????????????? echo "已登录<br>";
???????????????????? echo "<a href="mylogin2.php">下一页</a>";
???????????????????? ?>
???????????????????? mylogin2.php
???????????????????? <?php
???????????????????? $fp=fopen("e:\\tmp\\phpsid.txt","r");
???????????????????? $sid=fread($fp,1024);
???????????????????? fclose($fp);
???????????????????? session_id($sid);
???????????????????? session_start();
???????????????????? if(isset($_SESSION['user']) && $_SESSION['user']="laogong" ) {
??????????????????????? echo "已登录?!";
???????????????????? }
???????????????????? else {
???????????????????????? //成功登录进行相关操作
???????????????????????? echo "未登录,无权访问";
???????????????????????? echo "请<a href="login.html">登录</a>后浏览";
???????????????????????? die();
???????????????????? }
???????????????????? ?>?
?