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 相关文章推荐
mysql5详细安装教程
Jan 15 PHP
PHP rawurlencode与urlencode函数的深入分析
Jun 08 PHP
php从memcache读取数据再批量写入mysql的方法
Dec 29 PHP
PHP使用DirectoryIterator显示下拉文件列表的方法
Mar 13 PHP
php通过baihui网API实现读取word文档并展示
Jun 22 PHP
PHP模拟asp.net的StringBuilder类实现方法
Aug 08 PHP
讲解WordPress开发中一些常用的debug技巧
Dec 18 PHP
php使用get_class_methods()函数获取分类的方法
Jul 20 PHP
Ajax和PHP正则表达式验证表单及验证码
Sep 24 PHP
Zend Framework入门教程之Zend_Db数据库操作详解
Dec 08 PHP
php表单习惯用的正则表达式
Oct 11 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
Dec 25 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新手上路(十一)
2006/10/09 PHP
解析argc argv在php中的应用
2013/06/24 PHP
浅析php过滤html字符串,防止SQL注入的方法
2013/07/02 PHP
php中使用sftp教程
2015/03/30 PHP
php实现网站留言板功能
2015/11/04 PHP
PHP QRCODE生成彩色二维码的方法
2016/05/19 PHP
兼容多浏览器的字幕特效Marquee的通用js类
2008/07/20 Javascript
javascript 面向对象编程基础:继承
2009/08/21 Javascript
JQuery 动画卷页 返回顶部 动画特效(兼容Chrome)
2010/02/15 Javascript
Jquery实现由下向上展开效果的例子
2014/12/08 Javascript
director.js实现前端路由使用实例
2015/02/03 Javascript
js实现将选中值累加到文本框的方法
2015/08/12 Javascript
js精美的幻灯片画集特效代码分享
2015/08/29 Javascript
jquery实现通用的内容渐显Tab选项卡效果
2015/09/07 Javascript
jQuery div拖拽用法实例
2016/01/14 Javascript
Bootstrap图片轮播组件使用实例解析
2016/06/30 Javascript
react-router4 配合webpack require.ensure 实现异步加载的示例
2018/01/18 Javascript
微信小程序商品详情页的底部弹出框效果
2020/11/16 Javascript
JavaScript实现随机点名器实例详解
2019/05/07 Javascript
Nodejs异步流程框架async的方法
2019/06/07 NodeJs
微信小程序开发(三):返回上一级页面并刷新操作示例【页面栈】
2020/06/01 Javascript
javascript中正则表达式语法详解
2020/08/07 Javascript
在Python的Bottle框架中使用微信API的示例
2015/04/23 Python
Python logging设置和logger解析
2019/08/28 Python
python通用数据库操作工具 pydbclib的使用简介
2020/12/21 Python
纯css3显示隐藏一个div特效的具体实现
2014/02/10 HTML / CSS
YSL圣罗兰美妆美国官网:Yves Saint Lauret US
2016/11/21 全球购物
出国考察邀请函
2014/01/21 职场文书
初二生物教学反思
2014/02/03 职场文书
《乌塔》教学反思
2014/02/17 职场文书
大学生求职信范文
2014/05/24 职场文书
疾病防治方案
2014/05/31 职场文书
工作报告范文
2019/06/20 职场文书
Sql Server之数据类型详解
2022/02/28 SQL Server
JS前端使用canvas实现物体的点选示例
2022/08/05 Javascript
JDK8中String的intern()方法实例详细解读
2022/09/23 Java/Android