-1

当我加载 index.php 时,没有启动会话。有一个使用我创建的登录类的登录表单,当用户成功登录后,他被带回 index.php,此时会话应该开始。

我需要做些什么来确保会话仅在成功登录时才在索引页面上启动?

4

3 回答 3

3

会话和身份验证不是同义词。您可以在不记录的情况下启动会话。您可以设置会话特定变量并检查它以确定用户是否已登录。

只需在页面顶部启动会话,无论用户是否登录。

于 2013-05-08T17:35:13.573 回答
0

不要担心 session_start() 它不会设置任何会话它只会启动会话。所以你仍然可以把 session_start() 放在文件的顶部

当您运行登录 sql 查询并检查成功的结果时,设置会话相当简单,如果登录成功则设置会话,如下所示

if(sussessful_login) {
   $_SESSION['yoursessionname'] =  'value';
}
于 2013-05-08T17:37:08.863 回答
0

您将自己置于第 22 条问题的境地。登录成功将存储在会话中,因此您必须启动会话以检查用户是否已登录。

你会想要更多这样的东西

<?php

session_start(); // ALWAYS start a session, regardless

if(!isset($_SESSION['logged_in'])) {
   ... not login sentinel set, redirect to login page ...
}
... proceed onwards
于 2013-05-08T17:37:19.840 回答