私のWebサイトではHostGator上の共有ホスティングについて当日は、トラフィックが多いときにエラー500を受け取りました(249訪問、148,429ヒット、141,829ページ、723.01 MB) - 共有ホスティングでは、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が長すぎるか、または不正な文字が含まれています」というエラーがトラフィックの多さに起因していたということです。
現在、サイトは問題なく機能しています。私も訪れました 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");
}
?>
回答:
回答№1は0このように 質問
(...)生成されたセッションIDにあなたをリンクさせるクッキーは クライアント側。そのクッキーが無効なフォーマットに変更された場合(誰かが 何かを悪用しようとすると、PHPがそれに気付くでしょう。