3

HTML ページから php SESSION データにアクセスする際に奇妙な問題が発生しています。「page1.html」にリダイレクトする基本的な login.php があります。.htaccess を次のように構成しました。

AddType application/x-httpd-php5 .html .htm

さらに、私の php コードが任意の HTML ページで機能していることもわかっています。

しかし、私が置くと:

session_start();

....

if(!isset($_SESSION['username'])){
    header ("Location: http://blahblahblah/Login.html");
}

page1.html の本体内では、if ステートメントが常に起動します (実際にはvar_dump($_SESSION) yields "array(0) { }")。

しかし、同じコードを「page1.php」に入れると、すべてが期待どおりに機能します (そしてvar_dump($_SESSION) gives proper values).

$_SESSION拡張子が に変更された場合と同じように、HTML ページからアクセスすることはできません'.php'か? それとも、私がここで間違っていることがありますか?戻ってすべてのファイル拡張子などを変更するのは不便なので、ほとんどのページを保持したいと思います'.html''.php,'

とても有難い、

4

1 に答える 1

0

あなたが説明したことから、PHPは正しく機能しています(ifステートメントがトリガーされているため)。

確認事項:

  • session_start()page1.htmlで呼び出されていますか? これは、セッション データを取得して$_SESSIONスーパー グローバルを設定するために呼び出す必要があります。
  • session_start()ヘッダーが送信される前に呼び出されていますか? HTML または空白が送信される前にセッションが開始されていることを確認してください。開始されていない場合、セッション Cookie はヘッダーと共に送信されません。
  • Login.html と page1.html は同じドメインと同じサブドメインにありますか? $_SESSIONセッション Cookie が利用できない場合、空になることがあります。これは、ドメイン間でセッションを使用しようとした場合に発生する可能性があります。
  • セッション Cookie はありますか? また、それは送信されていますか? page1.html に移動する際に、Firebog/Inspector などを使用して、セッション cookie が存在すること、およびページのリクエストで渡されていることを確認します。
  • $_SESSION変数はどのように設定されていますか? $_SESSION最初に page1.html にアクセスしようとしたときに変数が適切に設定されていない可能性があるため、page1.php が機能するのは偶然かもしれません。
  • Apache にはsession.save_pathphp.ini で宣言されたファイルへの書き込み権限がありますか?
  • session.save_path有効なパスですか?
于 2013-01-13T06:28:31.967 に答える