一尘不染

会话ID太长或包含非法字符,有效字符是az,AZ,0-9和'-'

php

怎么解决 :

警告:session_start()[function.session-start]:会话ID太长或包含非法字符,有效字符为第3行.....中的az,AZ,0-9和’-‘。

警告:session_start()[function.session-start]:无法发送会话cookie-第3行的.....中已经由发送头(输出从......:3开始)。

警告:session_start()[function.session-start]:无法发送会话缓存限制器-在第3行的.....中已发送的头文件(输出从.....:3开始)


阅读 447

收藏
2020-05-29

共1个答案

一尘不染

请查看此session_start()讨论以找到解决方法:

session_start() 如果PHPSESSID包含非法字符,则生成警告

警告:session_start()[function.session-
start]:会话ID包含非法字符,有效字符为/home/para/dev/mon_site/header.php中的az,AZ,0-9和’-‘。 17

为了避免我写了这个:

<?php
     function my_session_start()
     {
         if (ini_get('session.use_cookies') &&
isset($_COOKIE['PHPSESSID'])) {
             $sessid = $_COOKIE['PHPSESSID'];
         } elseif (!ini_get('session.use_only_cookies') &&
isset($_GET['PHPSESSID'])) {
             $sessid = $_GET['PHPSESSID'];
         } else {
             session_start();
             return false;
         }

        if (!preg_match('/^[a-z0-9]{32}$/', $sessid)) {
             return false;
         }
        session_start();

        return true;
    }
 ?>
2020-05-29