登录网站的PHP会话-理论

时间:2018-09-11 14:50:43

标签: php session

今天,我开始学习有关会话的知识。我们的首要任务是创建一个小型网站,一个登录网站和一个成员网站。如果成功登录,您将被转移到成员站点。如果您尝试不登录而访问成员站点,则将被转移到登录页面。

我们的老师希望我们在每个页面上运行一个控制脚本。据我了解,该脚本应采用我在表单中(我登录的表单)编写的内容,并检查其是否等于用户。如果正确,则会话开始。让我感到困扰的是,它正在网站的每个页面上运行。这不是很有效。每次用户重定向自己时,服务器都需要一次又一次地处理登录信息。

我在一个会议上做了一些研究,发现了另一种做事方式。每个页面都会自动开始一个会话。用户登录时,服务器将检查登录信息。如果信息正确,则为会话变量分配一个用户ID。当用户转到网站上的另一个页面时,脚本将检查是否设置了该用户ID。如果已设置,则用户已登录;如果未设置,则用户尚未登录。如果用户已注销。会话被破坏,这意味着每个会话变量都会丢失。现在,服务器不需要在每次加载新页面时都处理相同的登录信息。

我的思维方式可以接受吗?还是有其他更好的方法?

1 个答案:

答案 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()返回10(如果变量中包含数据)

基本上,您将在登录后调用用户信息,并将$_SESSION['userID']设置为数据库中的用户ID