締切り済みの質問

クッキー

<?php
setcookie(...);
sleep(...);
$cookiedata = $_COOKIE['...'];

このようにして書き込んで間もないクッキーの値を$cookiedataに入れようとしましたがNULLが入っていました。

<?php
$buf = ...;
setcookie($buf);
sleep(...);
$cookiedata = $buf;

とするのではなく、実際にクッキーから取得したいのですが、よい方法はありませんか?

投稿日時 - 2006-05-13 20:06:07

QNo.2149109

暇なときに回答ください

0人が「このQ&Aが役に立った」と投票しています

[  前へ  |  次へ ]

回答(4件中 1~4件目)

ANo.4

>でも、もしそのような方法がございましたら教えて下さい。

セッション変数に入れてみてください。

投稿日時 - 2006-05-15 00:54:56

ANo.3

#2に対する「回答に対するお礼」は再質問
なのでしょうか?
回答にあるとおり、理論的に「できない」という
ことでご理解なさっていますか?

setするだけで、クライアントからデータが
送られてこないのですから無理だということは
わかりますよね?setするのが関数なのに対して
getするのが配列なのをみればcookieはあくまでも
前回セットしたものしか受け取れないという
理解にいたると思いますがいかがですか?
httpは原則的にクライアントが要求データを送って
サーバーがその回答を返しておしまいです。
それを理解しなければ一生悩みつづけると思いますよ。

投稿日時 - 2006-05-14 15:20:44

ANo.2

がるです。
なるほど状況を理解いたしました。
> 1つのPHPで書き込んだクッキーを即座に読むのは無理のようでした。
ということがなさりたいのですね。

…申し訳ないのですが「無理」です、が回答になります。

「なぜ」書き込んだCookieの内容を使いたいのか、その背景がみえれば、もうちょっとなにか書き込みできるかと思うのですが。

で。以下、技術的説明を少し。
Cookieは、本質的にはHTTP REQUEST(ブラウザからのリクエスト)情報としてやってきます。
で、PHPの場合、プログラムが動く直前に、内部で切り分けをして、情報を$_COOKIEという変数内に格納します。

一方でsetcookieというのは「HTTP RESPONCE(ブラウザに対するお返事)」において「ヘッダ情報にCOOKIEの設定を入れといて~」っていう、ある意味予約に近いようなニュアンスを持つものです。ですので、そのタイミングでは、例え何十秒待とうとも、HTTP REQUEST情報には入っていきません。一度「ブラウザがRESPONCEを取得」して、その上でもう一度「REQUEST情報として」流してもらう必要があるので。

そのために「無理」となります。

なにかの参考にでもなれば幸いです。

投稿日時 - 2006-05-13 22:37:29

お礼

ありがとうございます。
質問に書きました

<?php
$buf = ...;
setcookie($buf);
sleep(...);
$cookiedata = $buf;

でできるのですが、$bufを使わずに

<?php
setcookie(...);
即座にクッキーを書き込む関数(...);
$cookiedata = $_COOKIE['...'];

がもしできたならその方がよいと思って質問いたしました。

投稿日時 - 2006-05-13 22:44:44

ANo.1

がると申します。
…ちと質問の意味を図りかねているのですが。

単純に「まずissetで値があるかを確認してから。値がなければ空文字なりデフォルト値なりなんなり、処理に都合のよい文字を入れておく」ではだめでしょうか?

投稿日時 - 2006-05-13 21:51:29

補足

わかりにくい質問ですみません。
いろいろとやってみた結果、クッキーが書き込みれるのはIEのステータスバーが完結した直後のようで、

<?php
setcookie(...);
sleep(...);
$cookiedata = $_COOKIE['...'];

でスリープをどんなに長くしても、ob_?? で出力バッファを操作しても、1つのPHPで書き込んだクッキーを即座に読むのは無理のようでした。

でも、もしそのような方法がございましたら教えて下さい。

投稿日時 - 2006-05-13 22:23:42

あわせてチェックしたい
  • sleepの負荷 ...
  • BUF634 ...
  • NULL ...
PR
【回答募集中】花粉にひと言、物申す![ 詳細 ]

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら