短い: 何らかの理由で、Cookie '_sid' が一部のブラウザー/コンピューターによって取得されていません。Long: 使用しているファイルが 3 つあります。/index.php、/scripts/login.php、および /iframes/register.php。ログイン情報が入力されると、一連の標準的な処理が行われ、ユーザーがログインします。「_sid」と呼ばれる Cookie が設定され、値が mySQL テーブルに保存されます。
login.php:
setcookie("_sid", $sid, 0, '/'); ?>
現在、すべてのコンピューターがこの Cookie を取得しています。15 以上のコンピューターでテストしましたが、すべて合格しました。クッキーの設定方法をお見せしたかっただけです。
問題は index.php にあります:
<?php
$username="x"; $password="y"; $database="z";
mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$loggedin=false; $team="none";
if(isset($_COOKIE['_sid'])){ //error happens here
print_r("test");
$session_id=$_COOKIE['_sid'];
コメント行でエラーが発生するようになりました。isset は false を返します。通常、これはある種の有用な指標になります。でも...
3 番目のファイル register.php は、ユーザーが他のユーザーを登録できるようにします (関係ありません)。注意すべき重要なことは、ファイルの先頭がindex.php とまったく同じであることです。
<?php
$username="x"; $password="y"; $database="z";
mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$loggedin=false; $team="none";
if(isset($_COOKIE['_sid'])){
print_r("test");
$session_id=$_COOKIE['_sid'];
ただし、このファイルは機能します。そうです、issetは機能します。このファイルは、すべての 15/15 コンピューターでも機能します。
これをさらに混乱させるために、index.php は 15 台のコンピューターのうち約 10 台で動作します。このエラーは常に mac (chrome、ff、safari) および Linux (ff テスト済みですが、chrome も想定するのが適切です) で発生します。ほとんどのウィンドウで動作します (クロムを使用した 7 + 8、ff)。ただし、同一のツイン コンピューター (ゴースト OS 上) を使用すると、1 台のコンピューターが動作し、もう 1 台は (ff を使用して) 失敗しました。
私はこの問題に2日間悩まされてきましたが、どうすればいいのか本当にわかりません...