ホームに戻る > スレッド一覧 > 過去ログ > 記事閲覧
[1033] Cookieについて
日時: 2011/12/11 05:40
名前: 田代 ID:ySkKytnc

ローカルのxamppで以下のコードを実行すると、

<?php
$value='test01,test02';

setcookie("testcookie",$value);

$cookie=$_COOKIE["testcookie"];

print("cookie:".$cookie."<br>");

?>

Cookieが保存されていることが確認できました。

しかし、こちらのサーバー(http://w9.oroti.net/~「ユーザー名」)で実行しても、Cookieが保存されません。

どのようにしたらCookieが保存できますか?
ご教授お願い致します。

Page: 1 |

Re: Cookieについて ( No.1 )
日時: 2011/12/11 18:07
名前: abcオロチサーバー管理人 ID:chlovhL6

上記を見ても、ちょっと分かりませんでした。
クッキーは、ここではPHPとブラウザとの変数のやりとりになるかと思いますので、サーバーとは関係がないような気がするのですが・・・・
Re: Cookieについて ( No.2 )
日時: 2011/12/12 12:29
名前: ID:F6Q7yghQ

こちらではw9鯖にて上記のコードにて動作を確認しました。
となると

ブラウザ環境に問題があることが想定されます。
しかしながらローカルでは動作が確認できたとのことですのでもう一度w9鯖にて動作確認を行い、それでも動作しない場合はw9鯖で設置してURLを記載していただければ他の人がそのページでクッキーを保存できるかの確認ができると思われます。
Re: Cookieについて ( No.3 )
日時: 2011/12/12 18:13
名前: 田代 ID:YHr4qIFI


http://w9.oroti.net/~comatch/session/cookie02.php

にアクセスお願いいたします。

Re: Cookieについて ( No.4 )
日時: 2011/12/12 18:34
名前: ID:F6Q7yghQ

確かに保存もされていないようですね。
sessionディレクトリに他に何かが入っているとかもないでしょうか?
またクッキーに時間を設定してもダメでしょうか?
可能性として考えれるのはクッキーの有効期限が0で速効で削除されてるとかでしょうか。
Re: Cookieについて ( No.5 )
日時: 2011/12/12 18:59
名前: 田代 ID:YHr4qIFI

>sessionディレクトリに他に何かが入っているとかもないでしょうか?
sessionディレクトリをcookie02.phpだけにしてみましたが、ダメです。

sessionディレクトリをcookie02.phpだけにした状態で、
例えば、下記のようにコードを書き換えて、1時間に設定してみました。
ローカルでは保存されますが、w9サーバでは、ダメのようです。

<?php
$value='test01,test02';
$time=time() + 60*60;
setcookie("testcookie",$value,$time);

$cookie=$_COOKIE["testcookie"];

print("cookie:".$cookie."<br>");

?>

Re: Cookieについて ( No.6 )
日時: 2011/12/14 03:01
名前: 田代 ID:wXgABY0I

僕には、どうにもできそうにないので、試しにperlとかで書いてみます。
Re: Cookieについて ( No.7 )
日時: 2011/12/16 10:16
名前: 沙布巾 ID:rZxQyHR6

自分も w9 サーバーの使用者なので確認しました。
基本的に、サーバーの問題ではありませんでした。

結論から言えば、Cookie は正常に設定されました。

ただし、色々と問題が重なった結果だと思います。

まずは、実験1
環境は、Windows 7、Firefox 8.0.1 で上記のスクリプトを実行しました。
結果は、表示されませんでしたが、ブラウザで確認したところ設定されていました。
これは、サーバーの処理スピードが早く上記スクリプトでは、ブラウザが Cookie を設定する前に変数を返すからだと思います。
2回目に実行すると、前回設定したものが表示されます。

実験2
環境が Windows XP、Firefox 8.0.1、Opera 11.60 で上記スクリプトを実行しました。
結果は、表示されず、ブラウザにも設定されていませんでした。

そこで、スクリプトを修正、setcookie の後に、<html> の出力を設定すると、
結果は、表示されませんでしたが、ブラウザで確認したところ設定されていました。

多分原因は、

> setcookie() は、その他のヘッダ情報と共に 送信するクッキーを定義します。 ほかのヘッダ情報と同様に、 クッキーは、スクリプトによる他のあらゆる出力よりも前に 送信される必要があります(これはHTTPプロトコルの制約です)。 <html> や <head> タグはもちろん 空白も含め、あらゆる出力よりも前にこの関数をコールするようにしなければなりません。


参考までに、Firefox で Cookie を確認する時は、

[ツール][オプション][プライバシー][Cookie を個別で削除][w9.oroti.net]

の順に手繰ると設定されている Cookie を参照することが出来ます。

Page: 1 |