我正在学习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>
您根本不需要这个"logout" cookie。您的用户通过会话登录,因此session_destroy();
就足够了。好的做法是只"销毁"(取消设置)你已经定义的会话变量('firstname', 'lastname', 'studentNumber'),而不是销毁整个会话,可以包含来自其他脚本的数据。
所以如果你想注销用户,在你的"注销"按钮周围做一个表单并通过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']);
}
这不是一个很好的代码示例,但我希望它能对你的教育有所帮助。