会话不工作 PHP

Session not working PHP

会话未创建并不断重定向到 login.php。实在不明白为什么!我真的需要帮助:(

这是我的会话 class:

class Session {

    private $logged_in=false;
    public $user_id;

    function __construct() {
        session_start();
        $this->check_login();
    if($this->logged_in) {
      // actions to take right away if user is logged in
    } else {
      // actions to take right away if user is not logged in
    }
    }

  public function is_logged_in() {
    return $this->logged_in;
  }

    public function login($user) {
    if($user){
      $this->user_id = $_SESSION['user_id'] = $user->id;
      $this->logged_in = true;
    }
  }

  public function logout() {
    unset($_SESSION['user_id']);
    unset($this->user_id);
    $this->logged_in = false;
  }

    private function check_login() {
    if(isset($_SESSION['user_id'])) {
      $this->user_id = $_SESSION['user_id'];
      $this->logged_in = true;
    } else {
      unset($this->user_id);
      $this->logged_in = false;
    }
  }

}

$session = new Session();

?>

这是我登录页面的一部分:

if (isset($_POST['submit'])) { // Form has been submitted.

  $user_name = trim($_POST['user_name']);
  $password = trim($_POST['password']);

  // Check database to see if username/password exist.
    $found_user = User::authenticate($user_name, $password);

  if ($found_user) {
    $session->login($found_user);
    redirect_to("index.php");
  } else {
    // username/password combo was not found in the database
    $message = "Username/password combination incorrect.";
  }

} else { // Form has not been submitted.
  $user_name = "";
  $password = "";
}

这里是 index.php 的一部分:

if (!$session->is_logged_in()) { redirect_to("login.php");

我尝试过的:

我试着放一个 session_start();一开始没有运气。 在这些页面中使用的所有代码中查找错误。

在登录页面的if语句前调用session_start();

因为您尝试使用未在登录页面中声明的会话中的对象

只需在登录页面中执行此操作,一切都会好起来的

包括"Sessionclass.php"; 如果您已经这样做了,那么您需要检查 $found_user = User::authenticate($user_name, $密码);

发现这是我的 WAMP 服务器的问题。所以,现在我有了 Wamp 2.5,再也不会遇到这个问题了。