2009-03-10 10 views
3

私は自分のMacノートブックで開発していますが、私はMAMPを使用しています。 PHPでクッキーを設定しようとしていますが、できません。私はドメインを中止しました。私はドメインに "\"を使用しようとしました。運がない。MAMP + MacOSx + PHPを使用してローカルホストにクッキーを設定するにはどうすればよいですか?

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

私が何かを明らかに不足している必要があります。私はこれに迅速かつ簡単な解決策が必要です。 1つはありますか?

私は(MAMPを経由して)ページを、空想何も単にロードしていないよ、 http://localhost:8888/MAMP/lynn/setcookie.php

このスクリプトは、さらにHTMLタグを書き込む前に一番上にしますsetcookieコードを、持っています。 (でも私はBODYでも試しましたが)。私は、さまざまなブラウザでページを読み込んだ後、クッキーリストを開きます。私はブラウザが現在のものをリストに表示するので、ブラウザがクッキーを受け入れることを知っています。ちょうど私の新しいものではない。ドキュメントから

+0

ブラウザでクッキーが表示されない、または次のページでvar_dump($ _ COOKIE)でPHPに戻っていないことがありますか? –

+0

ブラウザでCookieが表示されないか、さまざまなブラウザのCookieリストの下に表示されます。 – lynn

+1

オープニングPHPタグ<?phpの前に空白がありますか?たとえば、<本当にドキュメントの最初のバイトですか? – Simon

答えて

6

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

それですか?

編集:

あなたは、例えば、サーバによって送信されたクッキーを見ることができますFirefox拡張子改ざんデータ、またはtelnetを使用していますか?あなたはそれが次のリクエストでブラウザによって送り返されているのを見ることができますか? setcookie()の戻り値は何ですか?それはすべてのブラウザで動作しているのではありませんか?

+0

問題ではないようです。 – lynn

+1

setcookie()を呼び出す前にPHPスクリプトの空白行がありますか?あるいは、おそらく最初の<?phpの前に空白行? –

+0

はい!それはそれだった。 – lynn

0
<?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';  
} 

これを試してください。

0

「localhost」を取り出して、空の文字列を使用するだけで私はうまくいきました。

関連する問題