менеджер сессий не работает на localhost - PullRequest
0 голосов
/ 09 мая 2018

Я пытаюсь создать безопасный сеанс, поэтому скопировал фрагмент кода менеджера сеансов из http://blog.teamtreehouse.com/how-to-create-bulletproof-sessions

Я не могу войти в систему, используя этот менеджер сеансов, мой путь неверен или что-то еще не так?

class SessionManager
{
static function sessionStart($name, $limit = 0, $path = '/', $domain = null, 
$secure = null)
{
  // Set the cookie name before we start.
  session_name($name . '_Session');

  // Set the domain to default to the current domain.
  $domain = isset($domain) ? $domain : isset($_SERVER['SERVER_NAME']);

  // Set the default secure value to whether the site is being accessed with 
SSL
  $https = isset($secure) ? $secure : isset($_SERVER['HTTPS']);

  // Set the cookie settings and start the session
  session_set_cookie_params($limit, $path, $domain, $secure, true);
  session_start();
}
}

Вот когда я использую класс в своем логине:

SessionManager::sessionStart('test',60, '/', '.localhost', false);

У меня есть условное утверждение, которое указывает на мою страницу входа в систему, и эти условия выполняются. (если я удаляю приведенный выше код, он просто входит в систему)

У меня есть заголовок, который проверяет каждую страницу, чтобы убедиться, что мой сеанс все еще активен (при необходимости я могу опубликовать больше кода):

if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] == true && 
$_SESSION['ip'] == $_SERVER['REMOTE_ADDR'];)

это работает, когда я просто использую session_start (), но по какой-то причине с этой новой функцией это не ...

...