-1

3 つの異なる場所にある教会の Web サイトを構築しています。ホームページにはいくつかの簡単な情報があり、次に各キャンパスがリストされています。ユーザーが選択した場所を保存し、今後の訪問時にその場所にリダイレクトしたいと思います。

たとえば、church.com にアクセスし、ホームページで location2 (church.com/location2) を選択します。

次にブラウザでchurch.comに入ると、自動的にchurch.com/location2にリダイレクトされます

ありがとう!

4

1 に答える 1

2

値をCookieに保存できます...

ユーザーが場所 2 にアクセスしたとき:

<?php
    $location = 2;
    // setcookie(name, value, expirationTime);
    setcookie("location", $location, time() + 2592000); // expiration time of one month
?>

スクリプトの冒頭で、「場所」Cookie が既に設定されているかどうかを確認する必要があります。はいの場合 -> 適切なページにリダイレクト

<?php
    $location = $_COOKIE["location"];
    if(isset($location))
    {
        header("location: /location".$location);
    }
?>

WordPress ソリューション

コメントで述べたように、私は WordPress のプロではありません。ただし、次の解決策は私にとってはうまくいきます。スクリプトによって何かが出力される前に、Cookie を設定することを忘れないでください。テンプレートの header.php に次の行を配置しました

// get postname (I used postname in 'Permalink Settings')
$location = get_query_var('name');

// if user is on startpage + was not redirected yet -> redirect
// if you don't set the userRedirected cookie, the user is not 
// able to visit the startpage anymore to chose a location
if($location == "" && isset($_COOKIE["location"]) && !$_COOKIE["userRedirected"])
{
    // path "/" makes the cookie available on the whole domain
    setcookie("userRedirected", true, null, "/"); // duration: session
    header("location: ".$_COOKIE["location"]); // redirect
}

if($location == "location-1")
{
    // set location cookie 1
    setcookie("location", "location-1", time() + 2592000, "/");
}
else if($location == "location-2")
{
    // set location cookie 2
    setcookie("location", "location-2", time() + 2592000, "/");
}

それが役に立てば幸い

于 2013-09-30T18:04:38.793 に答える