如何设置cookie以记录用户

时间:2016-10-28 15:49:47

标签: php session cookies

我正在尝试学习cookie章节,需要一些帮助来了解何时使用它们。在这个例子中,我想让用户输入他的信息,然后点击提交。然后,将显示他的信息。但是我有一个退出按钮,当他按下这个按钮时,我希望显示消息恢复为默认状态。

(这是不完整的)但到目前为止我只在test.php文件中写了以下内容:

<?php
    session_start();
    if(isset($_GET['submit'])) {
        $fn = $_GET['fname'];
        $ln = $_GET['lname'];
        $stunum = $_GET['stunum'];

        $_SESSION['firstname'] = $fn;
        $_SESSION['lastname'] = $ln;
        $_SESSION['studentNumber'] = $stunum;
    }

    setcookie ('logout', "Logout", time()-3600);
    session_destroy();

?>

<html>
   <body>
       <form action ="message.php" method="get">
           Firstname:<br><input type="text" name="fname"><br>
           Lastname:<br><input type="text" name="lname"><br>
           Student ID:<br><input type="number" name="stunum"><br>
           <input type="submit" name="submit">
       </form>
    </body>
</html>

在message.php中:

<?php
    include('test.php');

    $firstname = $_SESSION['firstname'];
    $lastname = $_SESSION['lastname'];
    $studentNumber = $_SESSION['studentNumber'];
    echo "Hi " . $firstname . " " . $lastname . "." . "Your student number is " . $studentNumber;

    setcookie('logout', "Logout", time() + 3600);
    if (isset($_COOKIE['logout'])) {
        setcookie('logout', "Logout", time() - 3600);
        session_destroy();
    }
    ?>

    <html>
        <body>
            <button name="logout">Logout</button>
        </body>
    </html>

1 个答案:

答案 0 :(得分:0)

你不需要这个&#34;退出&#34;饼干。您的用户已通过会话登录,因此session_destroy();已足够。良好的做法是&#34;销毁&#34; (取消设置)仅限您已定义的会话变量(&#39; firstname&#39;,&#39; lastname&#39;,&#39; studentNumber&#39;)但不销毁可包含来自的数据的整个会话其他脚本。

因此,如果您要注销用户围绕您的&#34;退出&#34;按键 并通过POST发送一些变量:

<form action="" method="post">
<button name="logout">Logout</button>
<input type="hidden" name="logout" value="true" />
</form>

如果用户提交该表单,则取消设置会话变量:

if(isset($_POST['logout'])) {
   unset($_SESSION['firstname']);
   unset($_SESSION['lastname']);
   unset($_SESSION['studentNumber']);
}

这不是一个很好的代码示例,但我希望这会对您的教育有所帮助。