今天,我开始学习有关会话的知识。我们的首要任务是创建一个小型网站,一个登录网站和一个成员网站。如果成功登录,您将被转移到成员站点。如果您尝试不登录而访问成员站点,则将被转移到登录页面。
我们的老师希望我们在每个页面上运行一个控制脚本。据我了解,该脚本应采用我在表单中(我登录的表单)编写的内容,并检查其是否等于用户。如果正确,则会话开始。让我感到困扰的是,它正在网站的每个页面上运行。这不是很有效。每次用户重定向自己时,服务器都需要一次又一次地处理登录信息。
我在一个会议上做了一些研究,发现了另一种做事方式。每个页面都会自动开始一个会话。用户登录时,服务器将检查登录信息。如果信息正确,则为会话变量分配一个用户ID。当用户转到网站上的另一个页面时,脚本将检查是否设置了该用户ID。如果已设置,则用户已登录;如果未设置,则用户尚未登录。如果用户已注销。会话被破坏,这意味着每个会话变量都会丢失。现在,服务器不需要在每次加载新页面时都处理相同的登录信息。
我的思维方式可以接受吗?还是有其他更好的方法?
答案 0 :(得分:0)
php $_SESSION
变量如何工作。
您希望用户登录后在每个页面上都需要在页面顶部添加session_start();
。
例如,仪表板将需要用户登录才能查看, 您将执行以下操作:
<?php
session_start();
$_SESSION['userID'] = 1; // setting the variable as userID 1
if (!isset($_SESSION['userID'])) {
header("Location: ../Login"); // redirects to login page
} else {
// do something here if the session is set
}
?>
isset()
返回1
或0
(如果变量中包含数据)
基本上,您将在登录后调用用户信息,并将$_SESSION['userID']
设置为数据库中的用户ID