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学习之PHP表达式
Oct 09 PHP
PHP4实际应用经验篇(5)
Oct 09 PHP
如何在PHP中进行身份认证
Oct 09 PHP
模拟flock实现文件锁定
Feb 14 PHP
php强制下载类型的实现代码
Apr 21 PHP
PHP基础之运算符的使用方法
Apr 28 PHP
php计算函数执行时间的方法
Mar 20 PHP
php抽象类用法实例分析
Jul 07 PHP
在Mac上编译安装PHP7的开发环境
Jul 28 PHP
使用PHP uniqid函数生成唯一ID
Nov 18 PHP
PHP常用的三种设计模式
Feb 17 PHP
学习thinkphp5.0验证类使用方法
Nov 16 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
编译问题
2006/10/09 PHP
php实现XSS安全过滤的方法
2015/07/29 PHP
浅析php-fpm静态和动态执行方式的比较
2016/11/09 PHP
PHP实现模拟http请求的方法分析
2017/12/20 PHP
JavaScript创建命名空间(namespace)的最简实现
2007/12/11 Javascript
主页面中的两个iframe实现鼠标拖动改变其大小
2013/04/16 Javascript
jquery拖动插件(jquery.drag)使用介绍
2013/06/18 Javascript
jquery实现pager控件示例
2014/04/09 Javascript
JQuery右键菜单插件ContextMenu使用指南
2014/12/19 Javascript
jquery在ie7下选择器的问题导致append失效的解决方法
2016/01/10 Javascript
js捕捉键盘事件和按键键值的方法
2016/10/10 Javascript
JS调用打印机功能简单示例
2016/11/28 Javascript
WEB开发之注册页面验证码倒计时代码的实现
2016/12/15 Javascript
JS正则RegExp.test()使用注意事项(不具有重复性)
2016/12/28 Javascript
三种方式实现瀑布流布局
2017/02/10 Javascript
浅谈Node.js 子进程与应用场景
2018/01/24 Javascript
webpack4 配置 ssr 环境遇到“document is not defined”
2019/10/24 Javascript
python爬虫教程之爬取百度贴吧并下载的示例
2014/03/07 Python
Python中的__SLOTS__属性使用示例
2015/02/18 Python
Python多重继承的方法解析执行顺序实例分析
2018/05/26 Python
TensorFlow 滑动平均的示例代码
2018/06/19 Python
python调用并链接MATLAB脚本详解
2019/07/05 Python
Python 实现PS滤镜的旋涡特效
2020/12/03 Python
HTML5 与 XHTML2
2008/10/17 HTML / CSS
Gibson London官网:以地道的英国男装而著称
2019/12/06 全球购物
法国低价在线宠物商店:bitiba.fr
2020/07/03 全球购物
当我正在为表建立索引的时候,SQL Server 会禁止对表的访问吗
2014/04/28 面试题
遗体告别仪式答谢词
2014/01/23 职场文书
春风行动实施方案
2014/03/28 职场文书
职业生涯规划书结束语
2014/04/15 职场文书
工程承诺书怎么写
2014/05/24 职场文书
2014年保管员工作总结
2014/11/18 职场文书
责任书格式
2015/01/29 职场文书
Django 如何实现文件上传下载
2021/04/08 Python
HTML5基础学习之文本标签控制
2022/03/25 HTML / CSS
在ubuntu下安装go开发环境的全过程
2022/08/05 Golang