0

ユーザーがログインしているかどうかを判断するために、PHP を使用して保存された Cookie を使用しようとしています。

以下を使用してCookieを設定しています:

else $keep_alive = time()+(86400 * 14);
setcookie("id",mysql_result($result, 0, "id"),$keep_alive, "/", "mydomain.com");

「id」の値を取得しようとすると、ヘッダーが送信される前であれば、次の方法で取得できます。

$id = $_COOKIE['id'];

ただし、ページ ヘッダーが既に送信されている場合、'id' の値は取得されません。ヘッダーが送信された後に Cookie の値を取得することはできませんか、それとも何か不足していますか?

4

3 に答える 3

1

Cookies are set/sent by headers. You can't send headers twice, so if you've already sent the headers you can't set a cookie on this page load. Make sure you don't print anything out before sending the cookie, or buffer it (ob_start, etc.)

于 2012-05-10T13:42:22.427 に答える
0

問題は、相対パスでのみ機能するインクルードファイルでCookie値を取得しようとしていたことでした。したがって、Cookieを取得するには、includeステートメントでhttp://www.example.com/directory/page.phpを./directory/page.phpとして参照する必要があります。これがPHPのバグなのか、それともそのように機能させるつもりなのかはわかりませんが、今はすべて順調です。

于 2012-05-11T20:14:48.110 に答える
0

You may use

ob_start() and ob_end_flush()

This way headers aren't sent until the end function is called.

于 2012-05-10T13:43:06.480 に答える