После проверки ввода пользователя и сохранения учетных данных для входа я запускаю сеанс, вызывая session :: start, а затем перезагружает файл index.php, вызывая general :: reload. Я использую session :: is_start (), чтобы определить, какую страницу загружать из индексного файла.
Я не думаю, что это работает правильно, так как я всегда получаю одну и ту же страницу – b1e.htm.
Я обеспокоен тем, что мой сеанс статического класса не поддерживает его значение между вызовом AJAX / PHP и вызовом reload index.php.
Похожие сообщения – здесь
index.php
include 'b2.php'; if(session::is_start()) { include 'b2e.htm'; // user is logged in } else { include 'b1e.htm'; // user is not logged it }
Snippet – session: start () и session :: is_start ();
class session { protected static $ses_id =""; public static function start() { self::$ses_id = session_start(); } public static function is_start() { return self::$ses_id; } public static function finish() { self::$ses_id = 0; $_SESSION=array(); if (session_id() != "" || isset($_COOKIE[session_name()])) { setcookie(session_name(), '', time()-2592000, '/'); } session_destroy(); } }
Snippet – general :: reload ()
class general { public static function reload() { $uri = 'http://'; $uri .= $_SERVER['HTTP_HOST']; header('Location: '.$uri.'/host_name'); }
Вам необходимо вызвать session_start();
чтобы начать сеанс на каждой странице.
Вы можете инкапсулировать и консолидировать функции сеанса, но вы не можете полностью контролировать сеансы с классом, так как код пользователя php не имеет статуса (даже при использовании статического ключевого слова) … т.е. он будет зависеть от SESSION для сохранения состояния.