4

私は Mac ノートブックで開発を行っており、MAMP を使用しています。PHP で Cookie を設定しようとしていますが、設定できません。ドメインを省略しました。ドメインに「\」を使用してみました。運がない。

setcookie("username", "George", false, "/", false);
setcookie("name","Joe");

明らかな何かが欠けているに違いありません。これに対する迅速で簡単な解決策が必要です。ありますか?

私は特別なことは何もしていません。単に (MAMP 経由で) ページをロードするだけです : http://localhost:8888/MAMP/lynn/setcookie.php

このスクリプトには、HTML タグを記述する前に、上部に setcookie コードがあります。(BODYでも試しましたが)。さまざまなブラウザーでページを読み込み、Cookie リストを開きます。リストに現在の Cookie が表示されているので、ブラウザーが Cookie を受け入れることはわかっています。私の新しいものではありません。

4

3 に答える 3

8

ドキュメントから:

setcookie()は、残りのHTTPヘッダーと一緒に送信されるCookieを定義します。他のヘッダーと同様に、スクリプトからの出力の前にCookieを送信する必要があります(これはプロトコルの制限です)。これには、タグや空白を含む出力の前に、この関数を呼び出す必要があります。

それですか?

編集:

Firefoxの拡張機能であるTamperDataやtelnetを使用するなどして、サーバーから送信されているCookieを確認できますか?次のリクエストでブラウザから返送されているのがわかりますか?setcookie()の戻り値は何ですか?すべてのブラウザで機能しているわけではありませんか、それとも一部のブラウザで機能しているだけですか?

于 2009-03-10T19:12:31.523 に答える
1
<?php
ob_start();
if (isset($_COOKIE['test'])) {
    echo 'cookie is fine<br>';
    print_r($_COOKIE);
} else {
    setcookie('test', 'cookie test content', time()+3600);  /* expire in 1 hour */
    echo 'Trying to set cookie. Reload page plz';    
}

これを試して。

于 2009-03-10T22:06:14.650 に答える
0

「localhost」を取り出して、空白の文字列を持つだけでうまくいきました。

于 2010-07-08T00:47:54.177 に答える