PHP中的会话控制(一):cookie
2017-02-07 19:04
281 查看
什么是会话控制
会话控制是一种面向连接的可靠通信方式,通常根据会话控制判断用户登录的行为。
会话控制的思想就是允许服务器跟踪同一个客户端做出的连续请求。
会话控制可以记录客户登录行为,所以不必每浏览一个页面都去重复登录。对于同一个用户的请求还可以在多个页面之间为其共享数据。
两种会话控制方式:cookie和session。
什么是cookie
cookie是一种有服务器发送给客户端的一段信息,储存在客户端浏览器的内存或硬盘上,在客户对该服务请求时发回它。如此不必在连接服务器时,再同过网络传输处理这些信息,进而提高网页处理效率,降低服务器负担。
PHP中基于cookie的用户登录案例
连接数据库文件conn.php,代码如下:
用户登录页面login.php,处理登录行为,如果登陆成功,则将登陆信息保存到cookie,代码如下:
判断登录是否成功common.php,如果不成功,依然返回登陆界面,代码如下:
登陆成功页面index.php,可以从cookie中读取登录信息,代码如下:
退出登录页面logout.php,该页面清除cookie信息,代码如下:
ps:关于setcookie()的用法参考:PHP:setcookie
会话控制是一种面向连接的可靠通信方式,通常根据会话控制判断用户登录的行为。
会话控制的思想就是允许服务器跟踪同一个客户端做出的连续请求。
会话控制可以记录客户登录行为,所以不必每浏览一个页面都去重复登录。对于同一个用户的请求还可以在多个页面之间为其共享数据。
两种会话控制方式:cookie和session。
什么是cookie
cookie是一种有服务器发送给客户端的一段信息,储存在客户端浏览器的内存或硬盘上,在客户对该服务请求时发回它。如此不必在连接服务器时,再同过网络传输处理这些信息,进而提高网页处理效率,降低服务器负担。
PHP中基于cookie的用户登录案例
连接数据库文件conn.php,代码如下:
<?php $mysqli = new mysqli("localhost", "root", "root", "demo"); ?>
用户登录页面login.php,处理登录行为,如果登陆成功,则将登陆信息保存到cookie,代码如下:
<?php if(isset($_POST['sub'])){ //判断是否登录 include "conn.php"; //连接数据库文件 $sql = "select id from user where username='{$_POST["username"]}' and password = '".md5($_POST['password'])."'"; //sql查询语句 $result = $mysqli->query($sql); //查询结果记录集 if($result->num_rows > 0){ //判断是否登录成功 $row = $result->fetch_assoc(); $time = time() + 60*60*24; //定义cookie保存时间 //保存登录信息到cookie setcookie("username", $_POST['username'], $time); setcookie("uid", $row["id"], $time); setcookie("islogin", true, $time); header("location:index.php"); //跳转到登陆成功界面 } echo "用户名密码有误!"; } ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>登陆</title> <link rel="stylesheet" href=""> </head> <body> <form action="" method="post"> <table align="center" border="1" width="300"> <caption><h1>用户登录</h1></caption> <tr> <th>用户名</th> <td><input type="text" name="username" /></td> </tr> <tr> <th>密码</th> <td><input type="password" name="password" /></td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" name="sub" value="登陆" /> </td> </tr> </table> </form> </body> </html>
判断登录是否成功common.php,如果不成功,依然返回登陆界面,代码如下:
<?php /** * @Author: mrhengbing * @Email: 415671062@qq.com * @Create time: 2016-12-02 15:50:17 * @Last Modified by: mrhengbing * @Last Modified time: 2016-12-02 15:51:07 */ if(!$_COOKIE['islogin']){ header("location:login.php"); } ?>
登陆成功页面index.php,可以从cookie中读取登录信息,代码如下:
<?php header("Content-type:text/html;charset=utf-8"); //设置页面内容是html,编码格式是utf-8 include "common.php"; //判断是否成功登录 include "conn.php"; //连接数据库 echo "用户<b>".$_COOKIE["username"]."</b>,你好!"; ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title></title> <link rel="stylesheet" href=""> </head> <body> <a href="logout.php">退出登录</a> </body> </html>
退出登录页面logout.php,该页面清除cookie信息,代码如下:
<?php include "common.php"; $username = $_COOKIE["username"]; //提取cookie信息 //清除cookie信息 setcookie("username"); setcookie("uid", "", time()-3600); setcookie("islogin"); echo $username." 再见!"; ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title></title> <link rel="stylesheet" href=""> </head> <body> <a href="login.php">重新登陆!</a> </body> </html>
ps:关于setcookie()的用法参考:PHP:setcookie
相关文章推荐
- PHP 会话控制Cookie和Session
- PHP......会话控制SESSION与COOKIE
- PHP学习九--会话控制session和cookie
- php 会话控制(禁用cookie后session为什么会失效?)
- php会话控制(session&cookie)
- PHP 会话控制(session与cookie)
- PHP 会话控制 cookie与session 全解析
- PHP会话控制Session与Cookie
- php基础入门五(会话控制 session、cookie)
- php会话控制(session与cookie)
- PHP会话控制之Cookie使用例子
- PHP入门教程之会话控制技巧(cookie与session)
- php 会话控制(关于cookie的维护与生命周期)
- PHP会话控制:Session与Cookie详解
- PHP会话控制之cookie-实例
- php会话控制cookie/session
- php会话控制[2]-COOKIE
- PHP中使用会话控制(cookie & session)
- php 会话控制(了解cookie与session之间的区别与联系)
- PHP会话控制Session与Cookie