質問: form要素について php初心者です。ログインページを勉強中なのですが、 form要素で受け取ったデータを別ページで取得したいんですがどうすればいいでしょうか? ★条件 1.最初の読み込み時は『ゲスト』と表示させたい 2.ログイン後は『名前』を表示させたい ●input.htmlファイル 名前 ●output.phpファイル php if($_request["name"] != null){ echo($_request["name"]); }else{ echo("ゲスト"); }? アドバイスお願いします。
回答: エラーは #4 の方がおっしゃっているように、 文字出力後にsetcookieされているからだと思います。 cookieはheaderにセットされるので、 何かを出力する前に、setやgetを完了していなければいけません。 あと、下のソースだと、 in.phpの時点では$_request["txt"]はnullなので そこでsetcookieしてもnullがセットされるだけです。 なので正しくセットされていたとしても、 out.phpでは何も表示されない(見えない)状態になると思います。 setcookie("mycookie","abcde"); と書いて、自分のpcの中に cookieファイルが出ているか確認しましょう。 セットされていれば、 out.phpに行った時に abcde と表示されると思いますよ。 #-- 混乱すると思うので成功後読んで欲しい ---- 上記の理由から、通常setcookieはout.phpの方で $_request["txt"]を取得した後に行うものですが、 ただ、$_cookie は、setcookie後すぐには効かなかったと記憶しています。 $_cookie は getcookie の結果だと思うので 1行目で setcookie しても、すでにgetcookieされた後らしく、 $_cookieの内容は更新されていない状態になるようです。