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 相关文章推荐
再次研究下cache_lite
Feb 14 PHP
PHP 八种基本的数据类型小结
Jun 01 PHP
PHP mysql与mysqli事务使用说明 分享
Aug 17 PHP
PHP实现图片裁剪、添加水印效果代码
Oct 01 PHP
php数组添加元素方法小结
Dec 20 PHP
用php守护另一个php进程的例子
Feb 13 PHP
php输出xml属性的方法
Mar 19 PHP
PHP实现动态柱状图改进版
Mar 30 PHP
php中smarty变量修饰用法实例分析
Jun 11 PHP
linux下php上传文件注意事项
Jun 11 PHP
PHP设计模式之建造者模式定义与用法简单示例
Aug 13 PHP
php解决安全问题的方法实例
Sep 19 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
Zend Framework教程之Zend_Db_Table用法详解
2016/03/21 PHP
PHP读取zip文件的方法示例
2016/11/17 PHP
PHP封装返回Ajax字符串和JSON数组的方法
2017/02/17 PHP
jquery $.ajax入门应用一
2008/11/19 Javascript
javascript+mapbar实现地图定位
2010/04/09 Javascript
appendChild() 或 insertBefore()使用与区别介绍
2013/10/11 Javascript
JavaScript高级教程5.6之基本包装类型(详细)
2015/11/23 Javascript
js+flash实现的5图变换效果广告代码(附演示与demo源码下载)
2016/04/01 Javascript
JQuery为元素添加样式的实现方法
2016/07/20 Javascript
分享JS代码实现鼠标放在输入框上输入框和图片同时更换样式
2016/09/01 Javascript
js 弹出虚拟键盘修改密码的简单实例
2016/10/10 Javascript
node.js中grunt和gulp的区别详解
2017/07/17 Javascript
vue生成随机验证码的示例代码
2017/09/29 Javascript
Vue.js组件通信的几种姿势
2017/10/23 Javascript
全面了解JavaScript的作用域链
2019/04/03 Javascript
Vue实现根据hash高亮选项卡
2019/05/27 Javascript
js实现点赞效果
2020/03/16 Javascript
[46:10]2014 DOTA2国际邀请赛中国区预选赛 CnB VS HGT
2014/05/21 DOTA
浅析Python中的getattr(),setattr(),delattr(),hasattr()
2016/06/14 Python
Python使用sorted排序的方法小结
2017/07/28 Python
python3+PyQt5 使用三种不同的简便项窗口部件显示数据的方法
2019/06/17 Python
postman模拟访问具有Session的post请求方法
2019/07/15 Python
keras 多任务多loss实例
2020/06/22 Python
欧舒丹比利时官网:L’OCCITANE比利时
2017/04/25 全球购物
土耳其新趋势女装购物网站:Addax
2020/01/07 全球购物
介绍下static、final、abstract区别
2015/01/30 面试题
电子商务专业推荐信范文
2013/12/02 职场文书
五年级学生评语
2014/04/22 职场文书
科技之星事迹材料
2014/06/02 职场文书
党的群众路线调研报告
2014/11/03 职场文书
2014小学语文教师个人工作总结
2014/12/03 职场文书
经营场所证明范本
2015/06/19 职场文书
领导离职感言
2015/08/03 职场文书
小学语文教师竞聘演讲稿范文
2019/08/09 职场文书
python脚本框架webpy模板控制结构
2021/11/20 Python
vue实现input输入模糊查询的三种方式
2022/08/14 Vue.js