2011-07-21 7 views
0

私はクッキーを設定しようとした後、新しいURLにリダイレクトし、設定されたクッキーにアクセスする(またはクッキーが設定されているかどうかをチェックする)が、新しいURLでは利用可能ではないようです。PHPでCookieを設定してから、新しいURLにリダイレクトして、設定したCookieにアクセスしますか?

<?php 
header("Location: http://www.facebook.com/pages/tabappURL"); 
setcookie('coupon', true, time() + 120); //hold for 2 min, time in seconds 
?> 

また、私は何が何であるのか、なぜこれをやろうとしているのかを説明しましょう。私はiframeであるFacebookのタブアプリを持っています...ユーザーはページを好きですし、コンテストエントリーフォーム(Wufooによって提供されます)が表示されます。ユーザーがフォームを提出すると、wufooは感謝のページにリダイレクトされます...しかし、それはリフレッシュし、Facebookからあなたを引き離します。これは理想的な状況ではありませんでした。私たちはiframe内にありがとうございました。回避策は私のサーバー(iframe内のコンテンツをホストしているのと同じサーバー)の別のページにリダイレクトすることでクッキーを設定してから、FBアプリケーションページにリダイレクトするように、wufoosエンドでiframeを対象にすることはできませんでした。次に、FBアプリはCookieが設定されているかどうかを確認してから、ありがとうメッセージを表示します。

技術的に、これは2つのページである:

のindex.php(有する)

<div class="not-liked">please like us</div> 
<div class="liked">enter contest</div> 
<div class="thanks">thank you</div> <!-- hidden until page refresh and cookie set --> 

redirect.php(クッキーを有する/上記のコードをリダイレクト)

答えて

2

クッキーは、典型的にのみアクセス可能です指定されたドメイン内PHPのドキュメントから

ドメイン:クッキーが利用可能ですドメイン。 Cookieをexample.comのすべてのサブドメイン(example.com自体を含む)で利用できるようにするには、Cookieを '.example.com'に設定します。一部のブラウザでは、初期設定なしでCookieを受け入れることができますが、»RFC 2109では、それを含める必要があります。ドメインを 'www.example.com'または '.www.example.com'に設定すると、cookieはwwwサブドメインでのみ使用可能になります。

+0

くそ、私を打つ! :-) – ceejayoz

+0

これはiframe Facebookアプリにあるので、ImのコンテンツはCookieが設定されたドメインからのものです。 – awvickers

+0

PHPコードは、実際にフェイスブックサーバーからロード/実行されていますか?他の場所でそのスクリプトをホストしていますか? Facebook.comがiframeを発行している可能性がありますが、コンテンツがサーバーから来ている場合は、サーバーはCookieの原点とみなされ、Facebookのホストされたページには使用できません。 –

-1

session_start()を呼び出しましたか?これにより、セッションヘッダーにセッションCookieがあるかどうかを確認するPHPが取得されます。

+0

はい、これは他のスレッドで提案されていました。私はこれを試しましたが、運はありません。 – awvickers

0

サードパーティのCookieを有効にしているかどうかを確認するには、ブラウザの設定を確認してください。一部のブラウザでは、無効にするとiframe内のページは同じドメインに属していてもCookieを受信しません。

+0

1年前に既に回答した質問に回答する際のポイントは何ですか? –

+0

1年前に!私はあなたが間違った日付を読むと思う。それは1ヶ月ですが、それはOPの問題を解決する方法でまだ答えられていませんでした。 –

+0

彼の問題はブラウザとは関係ありません –

関連する問題