The session id is too long or contains illegal characters, valid characters are a-z, A-Z, 0-9 and '-,'

后端 未结 7 1818
情歌与酒
情歌与酒 2020-11-27 17:12

How to solve :

Warning: session_start() [function.session-start]: The session id is too long or contains illegal characters, valid characters are a-z, A-

7条回答
  •  误落风尘
    2020-11-27 17:33

    I edited Andron's previous solution! (fix returned value) and added the evaluation output of my_session_start(). Previous solution solve problem with error message, but I need have to session started.

    /**
     * @return boolean return TRUE if a session was successfully started
     */        
    function my_session_start()
    {
          $sn = session_name();
          if (isset($_COOKIE[$sn])) {
              $sessid = $_COOKIE[$sn];
          } else if (isset($_GET[$sn])) {
              $sessid = $_GET[$sn];
          } else {
              return session_start();
          }
    
         if (!preg_match('/^[a-zA-Z0-9,\-]{22,40}$/', $sessid)) {
              return false;
          }
          return session_start();
    }
    
    if ( !my_session_start() ) {
        session_id( uniqid() );
        session_start();
        session_regenerate_id();
    }
    

提交回复
热议问题