Сессии с состоянием, пользовательский код PHP не - PullRequest
1 голос
/ 14 июля 2011

После проверки ввода пользователя и сохранения учетных данных для входа в систему я запускаю сеанс, вызывая 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
    }

Фрагмент - сессия: 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();
    }
  }

Фрагмент кода - общая информация :: reload ()

class general
  {
  public static function reload()
    {
    $uri = 'http://';
    $uri .= $_SERVER['HTTP_HOST'];
    header('Location: '.$uri.'/host_name');
    }

Ответы [ 2 ]

1 голос
/ 26 декабря 2011

Вы можете инкапсулировать и консолидировать функциональность сеанса, но вы не можете полностью контролировать сеансы с классом, поскольку пользовательский код php не имеет состояния (даже при использовании статического ключевого слова) ... т.е. сохранение состояния SESSION будет зависеть от SESSION.

0 голосов
/ 14 июля 2011

Вам нужно позвонить вашему session_start();, чтобы фактически начать сеанс на каждой странице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...