会话不工作 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,再也不会遇到这个问题了。
会话未创建并不断重定向到 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,再也不会遇到这个问题了。