2011-12-22 5 views
-2

これは複雑な質問かもしれませんが、私がしなければならないことは、あなたが製造元のサイトに行ったときに見た国の選択ページと本当に似ています。選択した後、適切なサイトに送信されました。たとえば、米国版またはスペイン語版です。私はこれがポップアップやシャドウボックスで行われているのが好きです。だから... ...クッキーを思い出してリダイレクトする

  1. あなたは私たちのホームページにポップアップを行くと(またはより良いまだ、シャドーボックス)は、ユーザが、グラフィックおよび/またはテキストリンクを提供している
  2. 2秒後にアップしますユーザーは彼らのために右のサイトを選択し、クッキー(複数可)
  3. それに送られる
  4. サイトAまたはサイトBに行くように彼らは再び選択ボックスが表示されません A.がいる限り、ユーザーに残されていますクッキーはそこにあります。 B.ページに当たったときに、常に正しい選択にリダイレクトされます。

私の研究では、あなたは1つではなく両方で行うことができるようです。どう思いますか?

+2

要件のリストがあると思いますが、どのようなアドバイスが必要ですか?あなたの求めるものがわからない。 – Robert

+2

"あなたはどちらかを行うことはできますが両方を行うことはできません" - 何が "両方"であるかは分かりません。あなたが説明したことは絶対に可能であり、かなり基本的なクッキーの使用です。 – maxedison

+1

'あなたはどちらか一方しかできないようですが、どちらもできないように見えますか? – DaveRandom

答えて

0

あなたがポップアップするためのいくつかのオプションを持っている上に、私は-Have以下

のいずれかをお勧めしますと、各ステップ

function redirectPopup(){ 
/*Do your popup stuff*/ 
} 

document.onload = function(){ 

    /*set timer to call your popup renderer*/ 
    setTimeout(redirectPopup,2000) 
} 

を行うために必要があります大体何可視性を非表示に設定してサイト訪問者の応答テキストに含まれるポップアップ。次にredirectPopup関数でスタイルプロパティを変更してポップアップを表示させる - 他のすべてを無効にする。 - redirectPopup関数でポップアップウィンドウ全体が生成されます。

クッキーについては、サイト訪問時にユーザーを自動的にリダイレクトするために使用できるsetcookie関数http://php.net/manual/en/function.setcookie.phpを使用できます。たとえば、次のユーザーが、彼らは、リダイレクトオプションを選択したかどうかを確認するために、サーバーを最初にチェックし、サイトを訪問上記の例では

/*Server request with $_GET redirectTo property*/ 
if(isset($_GET['redirectTo'])) 
    setcookie('redirectTo', $_GET['redirectTo'], time() + 86400 * 14); 

/*Check if the redirectTo cookie exists, redirect if true*/ 
if(isset($_COOKIE['redirectTo'])) 
    header("location:". $_COOKIE['redirectTo']); 

/*Do your initial, no redirect stuff here*/ 
.... 

。ユーザが宛先URLがGETパラメータ 'redirectTo'を含むサイトと同じであるリダイレクトオプションを選択すると仮定している。このパラメータに値が見つかった場合、リダイレクトオプションとそのリダイレクトCookieが設定されていることを確認するためには、ユーザーがサイトにアクセスしている必要があるとみなされます。

第2セクションでは、Cookieが設定されているかどうかを確認し、Cookieが設定されている場合はリダイレクトします。この例では、単純にクッキー値をヘッダー関数に渡しましたが、実際にはこれをやや複雑な方法で処理する方が現実的です。

setcookieメソッドには一定の期間が渡される必要はないため、永続的なCookieを設定することはできませんが、保存期間を馬鹿にして設定することはできます。最後に、クッキーは、その時点で使用しているマシンとブラウザーからのユーザーによってのみアクセス可能で、何らかの形式のユーザーロギングがなければ、時間と場所を無差別にリダイレクトすることはできません。

ケビンBは、常にクッキーが有効になっているとは限りません。そのことを念頭に置いて、PHPコードの最初の行セクションは、そのような機会を扱うために以下のように編集されるかもしれません。リダイレクトは少しより複雑であることが、クッキーが利用できない場合にリダイレクトを強制します。このメソッドを使用しての恩恵を受ける可能性が以前と同じように

/*Server request with $_GET redirectTo property*/ 
if(isset($_GET['redirectTo'])) 

    /*Where setting a cookie fails*/ 
    if(! setcookie('redirectTo', $_GET['redirectTo'], time() + 86400 * 14)) 
     header("location:" $_GET['redirectTo']); 

+0

大変ありがとうございます。これは大きなリードであり、私は正しい方向に私を指し示すためにそれを使用します - 本当にオリバーに感謝します。 – Brian

+0

また、私の投稿で物事を明確にしないと申し訳ありません - これは私の最初のもので、それについての新人です。次回より具体的になります。 Kevin私はあなたと一緒です、これはユーザビリティやSEOには向いていません。私はむしろサイトでそれを持っているだろうが、残念なことにクライアントは私の抗議にもかかわらず道を行くだろう...再びすべてありがとう。 – Brian

関連する問題