在我关于HostGator共享主机的网站上,几天前我开始在流量大的时候收到错误500(249次访问,148,429次点击,141,829页,当天723.01 MB带宽 - 很多人都在点击MySQL查询。在共享主机上,HostGator当时只允许25个正在运行的进程)。一旦流量减少,错误就会消失。
但是当我访问那个时间和日期的错误日志时,这就是我多次写的内容:
[12-Oct-2014 16:37:16] PHP Warning: session_start() [<a href='function.session-start'>function.session-start</a>]: The session id is too long or contains illegal characters, valid characters are a-z, A-Z, 0-9 and '-,' in /home/amalthea/public_html/tkq/q0.php on line 2
[12-Oct-2014 16:37:16] PHP Warning: session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cookie - headers already sent by (output started at /home/amalthea/public_html/tkq/q0.php:2) in /home/amalthea/public_html/tkq/q0.php on line 2
[12-Oct-2014 16:37:16] PHP Warning: session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cache limiter - headers already sent (output started at /home/amalthea/public_html/tkq/q0.php:2) in /home/amalthea/public_html/tkq/q0.php on line 2
[12-Oct-2014 16:37:16] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/amalthea/public_html/tkq/q0.php:2) in /home/amalthea/public_html/tkq/user.cookies.php on line 5
我不明白的是,错误“会话ID太长或包含非法字符”是由于流量过大造成的?流量大的问题与会话ID字符有什么关系?
目前,该网站工作正常。我也访问了this Question on Stackoverflow,但它没有解释错误,它只是一个解决方法。请解释为什么我在交通繁忙时才收到错误。我想确保我的代码是正确的。
以下是我的所有PHP页面在网站上的开始:
<?php
session_start();
require_once("user.cookies.php");
$username = $_SESSION["SESS_USERNAME"];
$id= $_SESSION["SESS_USERID"];
这是user.cookies.php
<?php
//redirect function
function returnheader($location){
$returnheader = header("location: $location");
return $returnheader;
}
if(!strlen($_SESSION["SESS_USERNAME"]) ){
//redirect
returnheader("login.php");
}
?>
答案 0 :(得分:0)
如此question
中所述(...)将您链接到生成的会话ID的cookie 客户端。如果该cookie更改为无效格式(某人是 试图利用某些东西)PHP会注意到它。