session cookie 相结合实现
数据库配置文件
config.php
<?php
// config.php 数据库连接文件
define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PASSWORD', '123456');
define('DB_NAME', 'test');
?>
登录首页
login.php
<?php
// login.php 登录界面
require_once('config.php');
session_start();
print_r($_COOKIE);
if(!isset($_SESSION['user_id']))
{
if(isset($_COOKIE['user_id']) && isset($_COOKIE['user_name']))
{
$_SESSION['user_id'] = $_COOKIE['user_id'];
$_SESSION['user_name'] = $_COOKIE['user_name'];
setcookie('user_id', $_COOKIE['user_id'], time()+3600, '/');
setcookie('user_name', $_COOKIE['user_name'], time()+3600, '/');
header('Location:face.php');
exit;
}
if(isset($_POST['submit']))
{
$db = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
mysql_select_db(DB_NAME, $db);
mysql_query("set names utf8", $db);
// 实际应用中要给加密
$user_name = mysql_real_escape_string(trim($_POST['username']));
$user_pwd = mysql_real_escape_string(trim($_POST['userpwd']));
$sql = "select * from session_cookie where user_name='" . $user_name . "' and userpwd = '" .$user_pwd . "'";
$res = mysql_query($sql, $db);
if(mysql_num_rows($res) == 1)
{
$row = mysql_fetch_assoc($res);
$_SESSION['user_id'] = $row['user_id'];
$_SESSION['user_name'] = $row['user_name'];
setcookie('user_id', $row['user_id'], time()+3600, '/');
setcookie('user_name', $row['user_name'], time()+3600, '/');
$url = 'face.php';
header("Location:" . $url);
}else
{
echo '没有相关的用户信息!'; exit;
}
}
}else
{
$url = 'face.php';
header("Location:" . $url);
}
?>
<html>
<body>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
user:<input type="text" name="username" /><br />
pwd:<input type="password" name="userpwd" /><br />
<input type="submit" name="submit" value="submit" />
</form>
</body>
</html>
实际登录的页面
face.php
<?php
// face.php 页面
session_start();
if(!isset($_SESSION['user_id']))
{
if(isset($_COOKIE['user_id']) && isset($_COOKIE['user_name']))
{
$_SESSION['user_id'] = $_COOKIE['user_id'];
$_SESSION['user_name'] = $_COOKIE['user_name'];
}else
{
header('Location:login.php');
exit;
}
}
print_r($_SESSION);
?>
<a href="logout.php">退出</a>
登出页面
logout.php
<?php
// 注销 session cookie logout.php
session_start();
if(isset($_SESSION['user_id']))
{
setcookie('user_id', $_SESSION['user_id'], time()-3600, '/');
setcookie('user_name', $_SESSION['user_name'], time()-3600, '/');
session_unset();
session_destroy();
echo '成功退出';
echo '重新登录请login.php';
exit;
}
header('Location:login.php');
?>
session cookie 相结合实现的更多相关文章
- session & cookie(li)
Session & Cookie 一.定义 Session,用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间.Cookie,由服务器端生成,发送 ...
- web也是区分前端与后端的,session\cookie辨析
<1>Ajax交互方式 Ext.Ajax.request( { //被用来向服务器发起请求默认的url url : "", //请求时发送后台的参数,既可以是Json对 ...
- 浅析session&cookie
session&cookie没有出现的黑暗时代 大家都知道,HTTP协议是一种无状态的协议,本次请求下一次请求没有任何的关联,所有没有办法直接用http协议来记住用户的信息,试想一向,每一次点 ...
- http之Session&Cookie
百度了一波session与Cookie,我发现这东西远比我想象中更复杂(可能是因为我不明白底层的运行原理).网上也是一堆的关于Session与Cookie区别/联系的文章,然而,我看完了还是一脸懵逼的 ...
- Asp.net MVC使用Model Binding解除Session, Cookie等依赖
上篇文章"Asp.net MVC使用Filter解除Session, Cookie等依赖"介绍了如何使用Filter来解除对于Session, Cookie的依赖.其实这个也可以通 ...
- Asp.net MVC使用Filter解除Session, Cookie等依赖
本文,介绍了Filter在MVC请求的生命周期中的作用和角色,以及Filter的一些常用应用场景. 同时针对MVC中的对于Session,Cookie等的依赖,如何使用Filter解依赖. 如果大家有 ...
- [转]Asp.net MVC使用Filter解除Session, Cookie等依赖
本文转自:http://www.cnblogs.com/JustRun1983/p/3279139.html 本文,介绍了Filter在MVC请求的生命周期中的作用和角色,以及Filter的一些常用应 ...
- [转载]JavaEE学习篇之——Session&&Cookie
原文链接: http://blog.csdn.net/jiangwei0910410003/article/details/23337043 今天继续来看看JavaWeb的相关知识,这篇文章主要来讲一 ...
- Redis+Django(Session,Cookie)的用户系统
一.Django authentication django authentication提供了一个便利的user api接口,无论在py中 request.user,参见Request and re ...
随机推荐
- RHEL7磁盘分区挂载和格式化
安装大数据平台,每台机器需要挂载10个磁盘,用JBOD模式,操作系统为RHEL7.2. 写了两个脚本,format_disk.sh和mount_disk.sh实现磁盘自动分区格式化以及挂载,修改fst ...
- 《Linear Algebra and Its Applications》-chaper1-线性方程组- 线性变换
两个定理非常的简单显然,似乎是在证明矩阵代数中的基本运算律.但是它为后面用“线性变换”理解矩阵-向量积Ax奠定了理论基础. 结合之前我们讨论过的矩阵和向量的积Ax的性质,下面我们就可以引入线性变换了. ...
- 51单片机连接24C02-C语言测试代码
忙了一天多终于透彻了,自己写的不好使,用别人的逐步分析改成自己的,我写得非常简洁易懂. 我总结3点需要注意的地方 1.关闭非IIC通信器件,比如我的开发板SDA和SCL也连接了DS1302,造成干扰会 ...
- JAVA--对象锁
在并发环境下,解决共享资源冲突问题时,可以考虑使用锁机制. 1.对象的锁 所有对象都自动含有单一的锁. JVM负责跟踪对象被加锁的次数.如果一个对象被解锁,其计数变为0.在任务(线程)第一次给对象加锁 ...
- Windows 8.1中怎么启用Framework3.5或2.0 ( 一安装就跳到下载 Win8.1自带了Framework)
Windows 8.1中怎么启用Framework3.5或2.0 ( 一安装就跳到下载 Win8.1自带了Framework): Win+X键 打开 开始菜单 -> 命令提示符(管 ...
- Lesson: Introduction to JAXP
The Java API for XML Processing (JAXP) is for processing XML data using applications written in the ...
- 使用VNC实现多用户登录linux系统
vmare版本:12.0.0 build-2985596
- linux 创建连接命令 ln -s 软连接
这是linux中一个非常重要命令,请大家一定要熟悉.它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s, 具体用法是:ln -s 源文件 目标文件. 当 我们需要在不同 ...
- mvc分层的原理
首先这是现在最基本的分层方式,结合了SSH架构.1.modle层就是对应的数据库表的实体类.2.Dao层是使用了hibernate连接数据库.操作数据库(增删改查).3.Service层:引用对应的D ...
- iOS socket小结01
一.网络各个协议:TCP/IP.SOCKET.HTTP等 网络七层由下往上分别为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 其中物理层.数据链路层和网络层通常被称作媒体层,是网络工程 ...