人に聞けない痔の悩み、これでスッキリ >>

php初心者です。ログインページを勉強中なのですが、
form要素で受け取ったデータを別ページで取得したいんですがどうすればいいでしょうか?
★条件
1.最初の読み込み時は『ゲスト』と表示させたい
2.ログイン後は『名前』を表示させたい
●input.htmlファイル
<form method="POST" action="output.php">
 名前<input type="text" name="name">
</form>
●output.phpファイル
<?php
if($_REQUEST["name"] != null){
 echo($_REQUEST["name"]);
}else{
 echo("ゲスト");
}?>
アドバイスお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (5件)

エラーは #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の内容は更新されていない状態になるようです。
    • good
    • 0

クッキーの出力は


http://www.php.net/manual/ja/features.cookies.php
にも書かれているとおり「ブラウザに何らかの出力を行う前にコー ルする必要」があります。
    • good
    • 0

PHPの場合、クッキーの設定は比較的簡単です。


http://www.zuien.or.jp/develop/ja-manual/php3/fu …
が参考になると思います。
ただし、受け取る側がPHPでなく、HTMLになるのであれば、
与えることはPHPでできますが、HTMLでは取得ができません。
ですので受取るばあいはJavaScriptを使ってください。
http://tohoho.wakusei.ne.jp/wwwcook.htm
が参考になると思います。

受取る時もPHPならもっと楽なんですけどね。

この回答への補足

再度補足です。
setcookie()関数を用いて簡単な処理を行ってみましたが、思い通りの結果が処理できません。

●送信側 in.phpファイル
<form method="POST" action="out.php">
<?php
 $value = $_REQUEST["txt"];
 setcookie("MyCookie","$value");
?>
<input type="text" size="30" name="txt" value="">
<input type="submit" name="submit" value="送信">
</form>

●受取側 out.phpファイル
<?php
 echo $_COOKIE["MyCookie"];
?>

*内容*
txt名テキストで入力された文字(データ)をsetcookie()関数にセットし送信し、out.phpでcookieのデータを取得し、表示させる。なおこの場合は無理やりクッキーを使用して結果を得ようとしていますが、あくまでクッキーの使用をテストするものであります。

これをブラウザで実行すると以下のエラーがでます。
Notice: Undefined index: txt in C:\Apache Group …
クッキーのセット方法、取得方法がいまいちわからないので再度アドバイスをよろしくお願いいたします。

補足日時:2003/11/07 02:14
    • good
    • 0

フォームを使ったログインならば #1さんの仰るとおりクッキーを使うのが最も楽でしょうね。


あとはセッションを使ってサーバー側にデータを保存(クッキーを併用、若しくはURLにセッションIDを埋め込み)するか、formによるログインにこだわらないのなら BASIC認証という方法があります。

参考URL:http://www.hotwired.co.jp/webmonkey/2001/49/inde …
    • good
    • 0
この回答へのお礼

参考URLありがとうございます。

お礼日時:2003/11/06 22:58

クッキー使っちゃダメなの?



あと、phpじゃなくて、htmlの方で使いたいってこと?
この場合はクッキーしかないと思う。

この回答への補足

クッキーを使いたいと思うのですが、
phpのクッキーの操作方法がよくわかりません。
参考になるURLなどはご存知でしょうか?

補足日時:2003/11/05 14:50
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング