类会话PHP

时间:2014-08-01 13:21:42

标签: php class session

我有一个类来生成session_id,但是每个f5都会被更新。

如何让它不是每次更新f5?

<?php

class SessionIdSaf
{
    function sessionGenerate() {

      $httponly = true;
      $session_hash = 'sha512';
      if (in_array($session_hash, hash_algos())) {
        ini_set('session.hash_function', $session_hash);
      }
      ini_set('session.hash_bits_per_character', 5);
      ini_set('session.use_only_cookies', 1);

      $cookieParams = session_get_cookie_params();
      session_set_cookie_params($cookieParams["lifetime"], $cookieParams["path"], $cookieParams["domain"], md5('secure'.$_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_USER_AGENT']), $httponly);
      session_name(md5('secure'.$_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_USER_AGENT']));
      session_start();
      return session_id();

  }

  function sessionRegenerate() {

    session_start();
    session_regenerate_id();
    return session_id();

  }

}


session_start();
if (session_id()) {
    $sessionIdSaf           = new SessionIdSaf();
    $sessionIdSafGenerate   = $sessionIdSaf->sessionGenerate();
}
echo $sessionIdSafGenerate;

我想要一个简单的类来生成session_id并重新生成。

只为所有网站访问者生成一个session_id。

1 个答案:

答案 0 :(得分:3)

您每次都在调用session_regenerate_id(true);,因此每次调用此函数时,会话ID都会重新生成。