数据库配置文件

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 相结合实现的更多相关文章

  1. session & cookie(li)

    Session & Cookie 一.定义 Session,用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间.Cookie,由服务器端生成,发送 ...

  2. web也是区分前端与后端的,session\cookie辨析

    <1>Ajax交互方式 Ext.Ajax.request( { //被用来向服务器发起请求默认的url url : "", //请求时发送后台的参数,既可以是Json对 ...

  3. 浅析session&cookie

    session&cookie没有出现的黑暗时代 大家都知道,HTTP协议是一种无状态的协议,本次请求下一次请求没有任何的关联,所有没有办法直接用http协议来记住用户的信息,试想一向,每一次点 ...

  4. http之Session&Cookie

    百度了一波session与Cookie,我发现这东西远比我想象中更复杂(可能是因为我不明白底层的运行原理).网上也是一堆的关于Session与Cookie区别/联系的文章,然而,我看完了还是一脸懵逼的 ...

  5. Asp.net MVC使用Model Binding解除Session, Cookie等依赖

    上篇文章"Asp.net MVC使用Filter解除Session, Cookie等依赖"介绍了如何使用Filter来解除对于Session, Cookie的依赖.其实这个也可以通 ...

  6. Asp.net MVC使用Filter解除Session, Cookie等依赖

    本文,介绍了Filter在MVC请求的生命周期中的作用和角色,以及Filter的一些常用应用场景. 同时针对MVC中的对于Session,Cookie等的依赖,如何使用Filter解依赖. 如果大家有 ...

  7. [转]Asp.net MVC使用Filter解除Session, Cookie等依赖

    本文转自:http://www.cnblogs.com/JustRun1983/p/3279139.html 本文,介绍了Filter在MVC请求的生命周期中的作用和角色,以及Filter的一些常用应 ...

  8. [转载]JavaEE学习篇之——Session&&Cookie

    原文链接: http://blog.csdn.net/jiangwei0910410003/article/details/23337043 今天继续来看看JavaWeb的相关知识,这篇文章主要来讲一 ...

  9. Redis+Django(Session,Cookie)的用户系统

    一.Django authentication django authentication提供了一个便利的user api接口,无论在py中 request.user,参见Request and re ...

随机推荐

  1. linux内核--页高速缓存

    页高速缓存,可以理解为对磁盘中的文件内容进行缓存的一种缓存策略,当然它不仅仅用于磁盘文件. 当对同一磁盘数据反复访问时,缓存数据就是非常必须的了.这就是buffer和 cache这两个概念中的buff ...

  2. hdu1698(线段树的区间替换)

    HDU1698 #include <bits/stdc++.h> using namespace std; #define Maxn 1001000*4 struct Node{ int ...

  3. nginx配置中文域名解析

    当nginx配置文件中的default如果遇到解析指向问题的时候 ,配置了中文 没有用 后来找了找这个网址 http://tools.jb51.net/punycode/ 然后进去转换了一下 把 评估 ...

  4. 用JAX-WS在Tomcat中公布WebService

    JDK中已经内置了Webservice公布,只是要用Tomcat等Webserver公布WebService,还须要用第三方Webservice框架. Axis2和CXF是眼下最流行的Webservi ...

  5. 王灏:光音网络致力打造Wi-Fi大生态圈

    光音网络,做的是本地网络综合服务.在中国,想把互联网做到覆盖延伸范围之外的最后100米,光音网络是当中一家,也是最坚持的一家.为千万家本地生活商户提供帮助,为数亿本地用户提供最佳的本地网络体验,这是光 ...

  6. jquerymobile知识点:button与a

    首先先上一段代码: <a href="#" data-role="button" onclick="change();" id=&qu ...

  7. PAT---1001. A+B Format (20)

    #include<stdio.h> int main(){ //定义要读入的两个整数 int a,b; //定义好放拆项用的数组 ]; //读入两个整数 scanf("%d%d& ...

  8. SQL2008和SQL2000可以跨服务器连接查询的测试实例

    测试目的: SQL2008 和 SQL2000 是否可以跨服务器连接查询 -- 测试环境: --A 虚拟机 XP ( IP : .0.0.213 )安装 SQL2000 个人版,并安装 SP4 补丁. ...

  9. sqlServer将多字段设为主键方法

    补充一下关于数据库多字段复合主键的设置. 首先一个表是不能有多个主键的.但是可以有多个字段组合成一个主键,这就是为什么有时候表里为什么会有多个字段都有主键的标志,那是因为他们组合成了一个主键了.我们可 ...

  10. proxy 出现乱码问题解决 lua

    ngx.req.set_header("Accept-encoding", ""); 加上这句 解除乱码 压缩问题造成的乱码