php中使用cookie来保存用户登录信息的实现代码


Posted in PHP onMarch 08, 2012

使用cookie保存页面登录信息

1、数据库连接配置页面:connectvars.php

<?php 
//数据库的位置 
define('DB_HOST', 'localhost'); 
//用户名 
define('DB_USER', 'root'); 
//口令 
define('DB_PASSWORD', '19900101'); 
//数据库名 
define('DB_NAME','test') ; 
?>

2、登录页面:logIn.php
<?php 
//插入连接数据库的相关信息 
require_once 'connectvars.php'; $error_msg = ""; 
//判断用户是否已经设置cookie,如果未设置$_COOKIE['user_id']时,执行以下代码 
if(!isset($_COOKIE['user_id'])){ 
if(isset($_POST['submit'])){//判断用户是否提交登录表单,如果是则执行如下代码 
$dbc = mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME); 
$user_username = mysqli_real_escape_string($dbc,trim($_POST['username'])); 
$user_password = mysqli_real_escape_string($dbc,trim($_POST['password'])); 
if(!empty($user_username)&&!empty($user_password)){ 
//MySql中的SHA()函数用于对字符串进行单向加密 
$query = "SELECT user_id, username FROM mismatch_user WHERE username = '$user_username' AND "."password = SHA('$user_password')"; 
//用用户名和密码进行查询 
$data = mysqli_query($dbc,$query); 
//若查到的记录正好为一条,则设置COOKIE,同时进行页面重定向 
if(mysqli_num_rows($data)==1){ 
$row = mysqli_fetch_array($data); 
setcookie('user_id',$row['user_id']); 
setcookie('username',$row['username']); 
$home_url = 'loged.php'; 
header('Location: '.$home_url); 
}else{//若查到的记录不对,则设置错误信息 
$error_msg = 'Sorry, you must enter a valid username and password to log in.'; 
} 
}else{ 
$error_msg = 'Sorry, you must enter a valid username and password to log in.'; 
} 
} 
}else{//如果用户已经登录,则直接跳转到已经登录页面 
$home_url = 'loged.php'; 
header('Location: '.$home_url); 
} 
?> 
<html> 
<head> 
<title>Mismatch - Log In</title> 
<link rel="stylesheet" type="text/css" href="style.css" /> 
</head> 
<body> 
<h3>Msimatch - Log In</h3> 
<!--通过$_COOKIE['user_id']进行判断,如果用户未登录,则显示登录表单,让用户输入用户名和密码--> 
<?php 
if(empty($_COOKIE['user_id'])){ 
echo '<p class="error">'.$error_msg.'</p>'; 
?> 
<!-- $_SERVER['PHP_SELF']代表用户提交表单时,调用自身php文件 --> 
<form method = "post" action="<?php echo $_SERVER['PHP_SELF'];?>"> 
<fieldset style="width:250px;"> 
<legend>Log In</legend> 
<label for="username">Username:</label> 
<!-- 如果用户已输过用户名,则回显用户名 --> 
<input type="text" id="username" name="username" 
value="<?php if(!empty($user_username)) echo $user_username; ?>" /> 
<br/> 
<label for="password">Password:</label> 
<input type="password" id="password" name="password"/> 
</fieldset> 
<br/> 
<input type="submit" value="Log In" name="submit"/> 
</form> 
<?php 
} 
?> 
</body> 
</html>

效果图:

php中使用cookie来保存用户登录信息的实现代码

3、登入页面:loged.php
<?php 
//已登录页面,显示登录用户名 
if(isset($_COOKIE['username'])){ 
echo 'You are Logged as '.$_COOKIE['username'].'<br/>'; 
//点击“Log Out”,则转到logOut.php页面进行cookie的注销 
echo '<a href="logOut.php"> Log Out('.$_COOKIE['username'].')</a>'; 
} 
/**在已登录页面中,可以利用用户的cookie如$_COOKIE['username']、 
* $_COOKIE['user_id']对数据库进行查询,可以做好多好多事情*/ 
?>

效果图:

php中使用cookie来保存用户登录信息的实现代码

4、注销cookie页面:logOut.php(注销后重定向到lonIn.php)
<?php 
/**cookies注销页面*/ 
if(isset($_COOKIE['user_id'])){ 
//将各个cookie的到期时间设为过去的某个时间,使它们由系统删除,时间以秒为单位 
setcookie('user_id','',time()-3600); 
setcookie('username','',time()-3600); 
} 
//location首部使浏览器重定向到另一个页面 
$home_url = 'logIn.php'; 
header('Location:'.$home_url); 
?>
PHP 相关文章推荐
PHP 文件上传功能实现代码
Jun 24 PHP
PHP 观察者模式的实现代码
May 10 PHP
php.ini 配置文件的深入解析
Jun 17 PHP
php生成excel列序号代码实例
Dec 24 PHP
php跨域cookie共享使用方法
Feb 20 PHP
CI框架开发新浪微博登录接口源码完整版
May 28 PHP
php函数与传递参数实例分析
Nov 15 PHP
PHPStrom中实用的功能和快捷键大全
Sep 23 PHP
windows7配置Nginx+php+mysql的详细教程
Sep 04 PHP
php微信公众平台开发(四)回复功能开发
Dec 06 PHP
php求数组全排列,元素所有组合的方法总结
Mar 14 PHP
PHP+Redis事务解决高并发下商品超卖问题(推荐)
Aug 03 PHP
PHP 代码规范小结
Mar 08 #PHP
色色整理的PHP面试题集锦
Mar 08 #PHP
PHP 在5.1.* 和5.2.*之间 PDO数据库操作中的不同之处小结
Mar 07 #PHP
php打造属于自己的MVC框架
Mar 07 #PHP
smarty巧妙处理iframe中内容页的代码
Mar 07 #PHP
php 操作符与控制结构
Mar 07 #PHP
PHP中将字符串转化为整数(int) intval() printf() 性能测试
Mar 20 #PHP
You might like
php使用curl检测网页是否被百度收录的示例分享
2014/01/31 PHP
PHP MYSQL实现登陆和模糊查询两大功能
2016/02/05 PHP
使用ltrace工具跟踪PHP库函数调用的方法
2016/04/25 PHP
PHP读MYSQL中文乱码的快速解决方法
2016/10/01 PHP
Gambit vs CL BO3 第一场 2.13
2021/03/10 DOTA
客户端 使用XML DOM加载json数据的方法
2010/09/28 Javascript
常用的JavaScript验证正则表达式汇总
2013/11/26 Javascript
Node.js和PHP根据ip获取地理位置的方法
2014/03/14 Javascript
在css加载完毕后自动判断页面是否加入css或js文件
2014/09/10 Javascript
使用PHP+JavaScript将HTML页面转换为图片的实例分享
2016/04/18 Javascript
Vue.js实现在下拉列表区域外点击即可关闭下拉列表的功能(自定义下拉列表)
2017/05/30 Javascript
完美解决axios在ie下的兼容性问题
2018/03/05 Javascript
vue 设置proxyTable参数进行代理跨域
2018/04/09 Javascript
Layui 动态禁止select下拉的例子
2019/09/03 Javascript
小程序实现按下录音松开识别语音
2019/11/22 Javascript
[02:17]TI4西雅图DOTA2前线报道 啸天mik夫妻档解说
2014/07/08 DOTA
python网络编程学习笔记(八):XML生成与解析(DOM、ElementTree)
2014/06/09 Python
python基础教程之常用运算符
2014/08/29 Python
Python多线程编程(一):threading模块综述
2015/04/05 Python
python使用Image处理图片常用技巧分析
2015/06/01 Python
Python本地与全局命名空间用法实例
2015/06/16 Python
python使用Turtle库绘制动态钟表
2018/11/19 Python
Python判断一个list中是否包含另一个list全部元素的方法分析
2018/12/24 Python
html5 外链式实现加减乘除的代码
2019/09/04 HTML / CSS
巴西网上药房:onofre
2016/11/21 全球购物
应用心理学个人求职信范文
2013/12/11 职场文书
音乐教学反思
2014/02/02 职场文书
品牌宣传方案
2014/03/21 职场文书
房地产活动策划方案
2014/05/14 职场文书
暑期培训班招生方案
2014/08/26 职场文书
银行稽核岗位职责
2015/04/13 职场文书
2015秋季运动会通讯稿
2015/07/18 职场文书
我的收音机情缘
2022/04/05 无线电
Golang 入门 之url 包
2022/05/04 Golang
阿里云国际版 使用Nginx作为HTTPS转发代理服务器
2022/05/11 Servers
win10截图快捷键win+shift+s没有反应无法截图怎么解决?
2022/08/14 数码科技