zoukankan      html  css  js  c++  java
  • 会话控制——session

    一、session的作用与cookie的作用相似,但是最大的不同在于session是将数据存放于服务器中。另外,session的应用必须先启动(session_start()函数)。

      所以,在客户端仅需保存客户的sessionID,而在服务器端(文件、数据库、memcache)中保存session变量的值。

      默认处理方式是使用web服务器中的的文件来记录每个用户的会话信息。

      用户请求web服务器时,将sessionID的值发送给服务器,在通过sessionID取出session变量。

    二、一个简单的邮件系统实例

      1.connect.inc.php

    <?php 
    
        define("DSN", "mysql:host=localhost;dbname=testmail");
        define("DBUSER","root");
        define("DBPASS","root");
        try{
            $pdo = new PDO(DSN,DBUSER,DBPASS);
        }catch($PDOException $e)
        {
            die("连接失败:".$e->getMessage());
        }
    ?>

      2.login.php 

     1 <?php 
     2 
     3     session_start();
     4     require "connect.inc.php";
     5     if(isset($_POST['sub']))
     6     {
     7         $stmt = $pdo -> prepare("select id,username from user where username=? and userpass=?");
     8         $stmt -> execute(arrary($_POST["username"],$_POST["password"]));
     9         if($stmt -> rowCount()>0)
    10         {
    11             $_SESSION = $stmt -> fetch(PDO:FETCH_ASSOC);//将用户全部信息注册到session
    12             $_SESSION["isLogin"] = 1;
    13             header("Localtion:index.php");
    14         }
    15         else
    16         {
    17             echo "用户名或者密码错误";
    18         }
    19     }
    20 ?>
    21 <html>
    22 <head><title>邮件登录系统</title></head>
    23 <body>
    24     <p>欢迎光临邮件系统,session ID :<?php echo session_id(); ?></p>
    25     <form action="login.php" method="post">
    26         用户名: <input type="text" name="username"><br>
    27         密码:   <input type="password" name="password"><br>
    28         <input type="submit" name="sub" value="登录">
    29     </form>
    30 
    31 </body>
    32 </html>

      3.index.php中使用session

    <?php
        session_start();
        if(isset($_SESSION['islogin']) && $_SESSION['islogin']===1)
        {
            echo "<p>当前用户为:".$_SESSION['username']."<br>";
        }
        else{
                header("Location:login.php");
            }
    ?>
    <html>
    ...............
    </html>


     4.logout.php 删除session
     1  1 <?php
     2  2     session_start();
     3  3     $username = $_SESSION['name'];
     4  4     $_SESSION = array();//删除所有$_SESSION变量
     5  5     if(isset($_COOKIE[session_name()])) //删除包含session的cookie
     6  6     {
     7  7         setcookie(session_name(),'',time()-4200,'/');
     8  8     }
     9  9     session_destroy();
    10 10 ?>
    11 11 <html>
    12 12     ......
    13 13 </html>


  • 相关阅读:
    斯坦福ML公开课笔记15—隐含语义索引、神秘值分解、独立成分分析
    [cocos2d-x]屏幕自适应解决的方法
    【机器学习实验】学习Python来分类现实世界的数据
    按花生酱,赞不绝口——敏捷12准则的敏捷解释
    linux命令笔记之ls
    HTML5 Canvas动画效果实现原理
    互联网+时代的人生必修课—逆商
    WebService的相关使用
    将一个链表中的结点依照奇偶分成两个链表
    web开发性能优化---用户体验篇
  • 原文地址:https://www.cnblogs.com/hxjbc/p/4498846.html
Copyright © 2011-2022 走看看