zoukankan      html  css  js  c++  java
  • PHP_Session

    Session有12个函数分别是:

    01 session_start:  初始 session
    02 session_destroy: 结束 session
    03 session_unset: 释放session内存
    04 session_name: 存取目前 session 名称
    05 session_module_name: 存取目前 session 模块
    06 session_save_path: 存取目前 session 路径
    07 session_id: 存取目前 session 代号
    08 session_register: 注册新的变量
    09 session_unregister: 删除已注册变量
    10 session_is_registered: 检查变量是否注册
    11 session_decode: Session 资料解码
    12 session_encode: Session 资料编码

    还有个全局变量就是:$_SESSION

    在您把用户信息存储到 PHP session 中之前,首先必须启动会话。
    注释:session_start() 函数必须位于 标签之前:

    代码如下:

    <?php session_start(); ?>
    
    <html>
    <body>
    
    </body>
    </html>

    存储 Session 变量

    代码如下:

    <?php
    session_start();
    // store session data
    $_SESSION['views']=1;
    ?>
    <html>
    <body>
    
    <?php
    //retrieve session data
    echo "Pageviews=". $_SESSION['views'];
    ?>
    
    </body>
    </html>

    终结 Session
    unset() 函数用于释放指定的 session 变量:

    代码如下:

    <?php
    unset($_SESSION['views']);
    ?>

    也可通过 session_destroy() 函数彻底终结 session:

    代码如下:

    <?php
    session_destroy();
    ?>

    实例:

    代码如下:

    <?php
    session_start();
    switch ( $_GET['action'] ){
    
        //登陆验证,假定session储存的秘密应该等于123才为正确
    
        case "loginif"; 
            if ($_SESSION['pass']=="123"){
                echo "密码正确 您可以执行注销";
            }
            else{
                echo "密码错误,您可以重新登陆";
            }
        break;
    
        //注销登陆
    
        case "logout"; 
            session_unset();
            session_destroy();
            echo "注销成功!可以判断一下密码是否正确来看看是不是成功注销";
        break;
    
        //写入session以供验证,
    
        case "login";
            $pass="123";//密码
            $_SESSION['pass']=$pass;
            echo "写入登陆密码了 去判断密码成功与否吧。";
        break;
    }
    ?>
    <p>假定本页名为temp.php </p>
    <p><a href="temp.php?action=login">用户进行登陆post,程序处理写入session</a></p>
    <p><a href="temp.php?action=loginif">判断用户密码是否正确</a></p>
    <p><a href="temp.php?action=logout">登陆成功的用户注销登陆</a></p>

    总结一下php中session的用法:

    (一)开始session
    在每一次使用session之前,都要加上这一句:“session_start();”。
        顾名思义,这个函数的作用就是开始使用session。

    (二)注册session
    首先要建立一个global(注意,一定要定义为global,不然在其它页面用不了)数组,
        如$login,其中
            $login['name']="Victor",
            $login['pwd']="111111",
        然后调用函数“session_register(login);”,

        session就成功注册了。

    (三)使用session里面的变量
    和注册session类似,都要先建立一个global数组,然后就和使用一般数组一样了。

    (四)判断session是否注册
    很简单,用“if (session_is_registered(login))”判断就可以了。

    (五)卸载session
    也很简单,“session_unregister(login);”就可以了。
    注意:在进行(二)(三)(四)(五)之前一定要先进行(一)。


    下面给出一个例子:

    1 index.htm

    代码如下:

    <html>
        <head>
            <title>测试</title>
        </head>
    
        <body>
            <FORM METHOD=POST ACTION="login.php">
            用户名:<INPUT TYPE="text" NAME="name"><br/>
            密码:<INPUT TYPE="password" name="pwd"><br/>
            <INPUT TYPE="submit" value="提交">
            </FORM>
        </body>
    </html>

    2 login.php

    代码如下:

    <?php
        global $login;
    
        if ($_POST['name']!="Victor" || $_POST['pwd']!="111111")
        {
                echo "登陆失败";
                echo "请<a href=index.htm>返回</a>";
                exit;
        }
    
        $login = array(
            'name'=>$_POST['name'],
            'pwd'=>$_POST['pwd']
        );
    
        session_start();
        session_register(login);
        echo "<a href=info.php>查看信息</a><br/>";
        echo "<a href=logout.php>退出登陆</a><br/>";
    ?>


    3 info.php

    代码如下:

    <?php
        session_start();
    
        if (session_is_registered(login))
        {
                global $login;
                echo "hello,".$login['name']."<br/>";
                echo "<a href=logout.php>退出登陆</a><br/>";
        }
        else
        {
                echo "非法操作<br/>";
                exit;
        }
    ?>


    4 logout.php

    代码如下:

    <?php
        session_start();
        session_unregister(login);
        header("location:index.htm");
    ?>
  • 相关阅读:
    S2-020 Struts ClassLoader Manipulation安全限制绕过(CVE-2014-0094)
    几本关于PHP安全的书
    招聘软件开发实习生
    招聘安全测试工程师
    Fortify对移动应用安全的支持
    安全测试服务方案
    对比AppScan Source和Fortify扫描AltoroJ的结果
    JAVA白盒安全测试需要关注的API
    Java安全防御学习笔记V1.0
    appscan 安全漏洞修复办法
  • 原文地址:https://www.cnblogs.com/StyxLord/p/5178511.html
Copyright © 2011-2022 走看看