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 ...
随机推荐
- spider爬站极度损耗站点流量
或许部分站长遇到过这样的情况,Baiduspider对一个网站的抓取频率要远高于新内容产出速度,造成了N多的流量被蜘蛛占用. 这样的情况一般是针对小站,因为大站访问量很大,蜘蛛对服务器的频繁访问不会有 ...
- 8-7-Exercise
链接:第二次小练 这次是我们这组出的题目~我出了一道......B-Prison rearrangement,感觉有点复杂~不过其实题目想通了还是很简单的...... @荆红浅醉出的是A.C.D,@从 ...
- request&response笔记
一.HttpServletResponse 1.代表了一个响应 2.应用: 2.1输出中文 字节流输出中文 //拿到输出字节流对象 ServletOutputStream oos = response ...
- <%%>与<%=%>区别
1.<%= %>只能得到当前面定义的值.即你在这个页里有<% int a=100%>--你在下面才可以使用<%=a%>2.${ }这个是el表达式.可以从上下文中得 ...
- 图解三种APP的区别
- 利用京东云擎架设免费Wordpress 博客(git方式)
京东云擎(JAE)是京东推出的一款公有云产品,是京东云平台生态圈的核心组成部分.与百度的BAE.新浪的SAE同样.可是JAE刚上线不久,可能非常多人都还没听说过或不太了解.我尝试在JAE安装WordP ...
- 字符串右移n位(C++实现)
字符串右移n位(C++实现): // ShiftNString.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <i ...
- SQL 建立临时表进行查询
SELECT min (maxrank) as minofmaxrank FROM (SELECT max(rank) as maxrank FROM tbl_core_staff WHERE st_ ...
- [日历] C#修改CNDate日历帮助类 (转载)
点击下载 CNDate.rar 主要功能如下 .传回公历y年m月的总天数 .根据日期值获得周一的日期 .获取农历 #region 私有方法 private static long[] lunarInf ...
- C# DbHelperSQL,操作不同的数据库帮助类 (转载)
本类主要是用来访问Sql数据库而编写的主要功能如下 .数据访问基础类(基于SQ),主要是用来访问SQ数据库的. .得到最大值:是否存在:是否存在(基于SQParameter): . 执行SQL语句,返 ...