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 正则 过滤html 的超链接
Jun 02 PHP
php 中英文语言转换类代码
Aug 11 PHP
整理的一些实用WordPress后台MySQL操作命令
Jan 07 PHP
php fsockopen解决办法 php实现多线程
Jan 20 PHP
php中base_convert()进制数字转换函数实例
Nov 20 PHP
ThinkPHP路由详解
Jul 27 PHP
腾讯CMEM的PHP扩展编译安装方法
Sep 25 PHP
yii2.0实现pathinfo的形式访问的配置方法
Apr 06 PHP
php基于websocket搭建简易聊天室实践
Oct 24 PHP
PHP 500报错的快速解决方法
Dec 14 PHP
PHP编程实现阳历转换为阴历的方法实例
Aug 08 PHP
php实现的中秋博饼游戏之绘制骰子图案功能示例
Nov 06 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
PHP4实际应用经验篇(9)
2006/10/09 PHP
简化php模板页面中分页代码的解析
2009/02/06 PHP
PHP判断密码强度的方法详解
2017/05/26 PHP
全面解析PHP面向对象的三大特征
2017/06/10 PHP
用jscript实现新建和保存一个word文档
2007/06/15 Javascript
Lazy Load 延迟加载图片的jQuery插件中文使用文档
2012/10/18 Javascript
jquery教程限制文本框只能输入数字和小数点示例分享
2014/01/13 Javascript
JS实现很实用的对联广告代码(可自适应高度)
2015/09/18 Javascript
Javascript中的Prototype到底是什么
2016/02/16 Javascript
JavaScript判断用户名和密码不能为空的实现代码
2016/05/16 Javascript
整理一下常见的IE错误
2016/11/18 Javascript
bootstrap快速制作后台界面
2016/12/05 Javascript
js仿新浪微博消息发布功能
2017/02/17 Javascript
基于node.js之调试器详解
2017/08/22 Javascript
JavaScript异步操作的几种常见处理方法实例总结
2020/05/11 Javascript
javascript实现前端分页效果
2020/06/24 Javascript
Python 自动补全(vim)
2014/11/30 Python
Python3访问并下载网页内容的方法
2015/07/28 Python
python字符串的方法与操作大全
2018/01/30 Python
Django自定义用户认证示例详解
2018/03/14 Python
对numpy和pandas中数组的合并和拆分详解
2018/04/11 Python
Django Channels 实现点对点实时聊天和消息推送功能
2019/07/17 Python
python实现tail实时查看服务器日志示例
2019/12/24 Python
pycharm 代码自动补全的实现方法(图文)
2020/09/18 Python
Python环境配置实现pip加速过程解析
2020/11/27 Python
CSS3的新特性介绍
2008/10/31 HTML / CSS
css3设置box-pack和box-align让div里面的元素垂直居中
2014/09/01 HTML / CSS
在印度上传处方,在线订购药品:Medlife
2019/03/28 全球购物
俄语地区最大的中国商品在线购物网站之一:Umka Mall
2019/11/03 全球购物
办公室内勤工作职责
2013/12/11 职场文书
初中新生军训方案
2014/05/13 职场文书
2014年秋季开学寄语
2014/08/02 职场文书
公司领导班子对照检查存在问题整改措施
2014/10/02 职场文书
西游降魔篇观后感
2015/06/15 职场文书
大学生,三分钟即兴演讲稿
2019/07/22 职场文书
MySQL 表空间碎片的概念及相关问题解决
2021/05/07 MySQL