[PHP-users 16504]Re: セッション破棄後画面が表示されない現象について

Shin MATAMURA matamura @ m-flats.co.jp
2003年 7月 4日 (金) 16:55:56 JST


マタ@MFと申します。

>  // JavaScript無効時の処理  ※ go_error.phpに遷移
>  // ★ここをコメントアウトすると白い画面はでなくなった。
>  print	"<noscript>\n" ;
>  print	"<meta http-equiv=\"Refresh\" 
>content=\"0;url=./go_error.php?code=1">\n" ;
>  print	"</noscript>\n";
>?>

このタグが効いて「go_error.php?code=1」へ飛んでいるなら、
Apacheのログにそう残るはずです。
そして、IEで保存した時に
<!-- saved from url=(0044)http://test/login.php -->
とはならず
<!-- saved from url=(0044)http://test/login.php?code=1 -->
みたいな感じになるでしょう。
そもそもJavaScriptバージョンが正常に動いているらしいので、
JavaScriptは有効なんですよね?
Locationで飛ばしただけで、勝手にJavaScriptが無効になるとは、
ちょっと考えにくいです。

ところで、ここのソースなんですが、2個目のprint文の改行コードの
直前の"がエスケープされてませんが、手写しですか?
まぁtypoだったら構文エラーで止まるでしょうが。

ちなみに上記の"をエスケープしたものでテストしましたが、
JavaScriptがオフならちゃんと飛びます。
# 飛ぶ先は適当に変更しました。
飛んだ先のページを保存すると、HTMLソースには
飛んだ先の情報が書かれています。
IE 6.0.2800.1106(パッチ SP1;Q813489;Q330994;Q818529)
です。
ただ、「ソースを表示」が効かない時はIEのローカルキャッシュが
壊れている可能性が高いので、IEの示す情報自体信頼度
低いのかも知れませんが…
私の環境では「ソースを表示」は効いてました。

見せて頂いたlogin.phpのソースが、「★白い画面ソース」のHTMLを
出力するのも不思議です。
login.phpのソースでは、「<title>ログイン</title>」なのに、
「★白い画面ソース」のHTMLは「<TITLE></TITLE>」ですよね。
小文字のタグが大文字になり、改行がトリミングされているのは
IEが保存時に勝手にやるんですが、<TITLE>タグの中身を
抜くってのはさすがにやらないと思います。
「<TITLE></TITLE>」を出力するようなコードをlogin.phpの
中から探して下さい。

PHPの設定などに関する問題なのか、或いは(真に失礼ながら)単なる
ロジックミスなのか、問題点を見極めましょう。
コードの性質上、コード全てを公開するのは無理でしょうから、
きしかわさん自身が慎重にコードとロジックを洗い直してみて下さい。
その上で、PHPの設定や挙動に関する話題と思われるなら、
もう一度MLの方々に聞いてみたらどうでしょう。

それでは、失礼します。


PHP-users メーリングリストの案内