人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

cookie にセットしたはずの値が反映されません。(詳しくは反映されたように見えた後、消える)

index.phpに<from>がありIDとpassをいれ、submitするとlogin.phpに飛び、ID/passが確認されれば、setcookie('id','aaa')が処理され、index.phpに再度移動し、確認されたIDが表示されるものです。
「反映されたように見えた」というのは、ieHTTPHeaders というもので確認すると、login.phpに移動した時には

Set-Cookie: id=aaa; '数字とアルファベット'='&でつながったアルファベット'

とあるのですが、index.phpになるとid=aaa; が消え、

Set-Cookie: '数字とアルファベット'='&でつながったアルファベット'

のみと変わっています。
使用環境はlocalhostでapache2.0.63+php5.2.11+UTF-8+jQuery、です。


●質問者: AKI-NAMI
●カテゴリ:ウェブ制作
✍キーワード:2.0 AAA cookie INDEX jQuery
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● TRTr
●0ポイント

クッキーはヘッダの情報の一つですから

login.phpからindex.phpに移動する際に

login.phpでクッキーをセットしたら

index.phpではセットしたクッキーを$_COOKIE[]などで

読み出してあげる必要があると思いますが

そのあたりの処理はどうなっているでしょうか。

http://w1.nirai.ne.jp/freeze/main/file10.html

◎質問者からの返答

質問の長さを気にして、省略していますが、

login.php ではsetcookie('id','aaa');

index.php ではprint($_COOKIE['id']);

としています。

ですが、質問にあるように、id=aaa の部分が消えているので当然 「aaa」とは表示されません。


2 ● TRTr
●70ポイント ベストアンサー

簡単なテストをして状況を洗い出してみてはいかがでしょうか。


setcookie.php

<?php

setcookie("aaa","999");

?>


showcookie.php

<?php

print_r($_COOKIE);

?>

(<は全角になってますが半角にしてください)

この二つを同じディレクトリにおいてブラウザで続けてアクセスすると、cookieは表示されるでしょうか。

表示されない場合、ブラウザでクッキーに保存されている値は確認できるでしょうか。

http://sgprmm.seesaa.net/article/123908136.html

双方のファイルのパスで値を取得できるか試してみてください。


これで表示できて質問のような状況だとすると

setcookieのpathがlogin.phpまで含んでいるとか

index.phpとlogin.phpが別のパス/ドメインにあるなど、

ブラウザ側がcookieを送信しない理由があると考えられます。

表示できたら、この二つのファイルをパス的にlogin.phpとindex.phpと同じ配置にして

同じことをしてみてください。

動作するでしょうか。


1 ブラウザはクッキーを記録しているか

2 ブラウザがクッキーをindex.phpとlogin.php両方に送信される状況にしているか

の二点を中心に状況の切り分けをしてみてください。

pathやdomainを設定していない場合、

少なくとも二つのファイルは同一ドメインの同一パスにあることが前提となります。

◎質問者からの返答

回答を待っている間にindex.php自体にPOSTして表示するように書き換えてみるとちゃんと表示されます。

書き忘れていたのですが、二つのファイルのツリー構造は

main/index.php と main/login/login.php

となっており、setcookieに'main/','./','../'の3種類のpathをsetcookie('aaa','value',0,$path);の形で入れていますがどちらも反映されません。

問題はどうやらこのあたりらしいのですが、まだわかりません。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ