• php部分--session的三种用法


    一.在不同页面之间显示用户的信息

    二.控制登录

    1.登录页面

    <body>
    <form action="loginchuli.php" method="post">
        <div>用户名:<input type="text" name="uid" /></div>
        <div>密码:<input type="password" name="pwd" /></div>
        <input type="submit" value="登录" />
    </form>
    </body>
    </html>

    2.登录处理页面

    <?php
    session_start();
    include("DBDA.class.php");
    $db = new DBDA();
    
    $uid = $_POST["uid"];
    $pwd = $_POST["pwd"];
    
    $sql = "select pwd from users where uid='{$uid}'";    //通过用户名,判断密码
    $attr = $db->Query($sql);
    
    $mm = $attr[0][0];                                    //取出密码
    
    if(!empty($pwd) && $pwd==$mm)
    {
        $_SESSION["uid"] = $uid;                         //如果登录成功,把取到的用户名放到session保存,跳转到主页面
        header("location:main.php");     
    }
    else
    {
        echo "登录失败!";
    }

    3.主页面

    </head>
    <?php
    session_start();
    
    
    if(empty($_SESSION["uid"]))               //判断session里面是不是存储到值,如果没有存储,让其跳转到登录界面
    {
        header("location:login.php");
        exit;
    }
    
    $uid = $_SESSION["uid"];                    //如果能够取到,通过session取到的用户名,显示下面的信息
    include("DBDA.class.php");
    $db = new DBDA();
    $sql = "select name from users where uid='{$uid}'";
    $attr = $db->Query($sql);
    
    ?>
    <body>
    <?php
    echo "<h1>欢迎登录:{$attr[0][0]}</h1>";
    
    ?>

    三、做购物车

    1.调水果表的信息

    <body>
    <table width="100%" border="1" cellpadding="0" cellspacing="0">
        <tr>
            <td>名称</td>
            <td>价格</td>
            <td>产地</td>
            <td>库存</td>
            <td>操作</td>
        </tr>
    <?php
    include("DBDA.class.php");
    $db = new DBDA();
    
    $sql = "select * from fruit";
    $attr = $db->Query($sql);
    
    foreach($attr as $v)
    {
        echo "<tr>
            <td>{$v[1]}</td>
            <td>{$v[2]}</td>
            <td>{$v[3]}</td>
            <td>{$v[4]}</td>
            <td><a href='jia.php?code={$v[0]}'>加购物车</a></td>    //添加购物车选项
        </tr>";
    }
    
    
    ?>
    </table>

    2.将传过来的水果加到购物车

    三条思路:

    //1.如果是第一次点击加购物车,做一个二维数组扔到SESSION里 //2.如果不是第一次点击加购物车并且该水果第一次点击,做一个该水果的一维数组扔到SESSION的二维数组里面 //3.如果不是第一次点击加购物车并且该水果不是第一次点击,将SESSION数组里面该水果的数量加1


    <?php session_start(); $code = $_GET["code"]; if(empty($_SESSION["gwc"])) { //1.如果是第一次点击加购物车,做一个二维数组扔到SESSION里 $attr = array( array($code,1) //建立一个二维数组,并在里面的一位数组中添加代号和数量1 ); $_SESSION["gwc"] = $attr; //把新建立的二维数组,添加到session中 } else { //判断该水果代号是否在SESSION数组里面出现 $attr = $_SESSION["gwc"]; //如果session里面有内容,则把内容给一个二维数组 if(PanDuan($code,$attr)) //下面见了一个PanDuan的方法,用来判断代号是不是已经存在session里 { //3.如果不是第一次点击加购物车并且该水果不是第一次点击,将SESSION数组里面该水果的数量加1 /*foreach($attr as $v) { if($code == $v[0]) { $v[1] = $v[1]+1; } }*/ for($i=0;$i<count($attr);$i++) //取数组的长度用count() { if($code == $attr[$i][0]) { $attr[$i][1]++; } } $_SESSION["gwc"]=$attr; } else { //2.如果不是第一次点击加购物车并且该水果第一次点击,做一个该水果的一维数组扔到SESSION的二维数组里面 $arr = array($code,1); $attr[] = $arr; $_SESSION["gwc"]=$attr; } } var_dump($_SESSION["gwc"]); //判断v是不是在arr里面出现 function PanDuan($v,$arr) //判断方法 { $n = 0; foreach($arr as $a) { if($v == $a[0]) { $n++; } } if($n==0) { return false; } else { return true; } }
  • 相关阅读:
    1349:【例4-10】最优布线问题
    1348:【例4-9】城市公交网建设问题
    P2024 [NOI2001]食物链
    $P2573 [SCOI2012]滑雪$
    $P1991 无线通讯网$
    $P2872 [USACO07DEC]道路建设Building Roads$
    $P1547 Out of Hay$
    hdu 3468 Treasure Hunting
    hungary HK 多重匹配
    Hdu匹配题集
  • 原文地址:https://www.cnblogs.com/xingyue1988/p/6221396.html
Copyright © 2020-2023  润新知