会话ID太长或包含非法字符,有效字符为a-z,A-Z,0-9和'-'
如何解决:
警告:session_start()[function.session-start]:会话ID太长或包含非法字符,有效字符为在线.....中的az,AZ,0-9和'-'. 3
Warning: session_start() [function.session-start]: The session id is too long or contains illegal characters, valid characters are a-z, A-Z, 0-9 and '-,' in ..... on line 3
警告:session_start()[function.session-start]:无法发送会话cookie-第3行的.....中已经由发送者发送的头文件(输出从......:3开始)
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at ......:3) in ..... on line 3
警告:session_start()[function.session-start]:无法发送会话缓存限制器-在第3行的.....中已发送的标头(输出从.....:3开始)
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at .....:3) in ..... on line 3
have a look at this session_start()
discussion for a work-around:
如果PHPSESSID包含非法字符,
session_start()
会生成警告
session_start()
generate a warning if PHPSESSID contains illegal characters
警告:session_start()[function.session-start]:会话ID包含非法字符,有效字符为/home/para/dev/mon/site/header中的az,AZ,0-9和'-'.第17行的php
Warning: session_start() [function.session-start]: The session id contains illegal characters, valid characters are a-z, A-Z, 0-9 and '-,' in /home/para/dev/mon_site/header.php on line 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;
}
?>