1

サービスを提供する各エリアのホームページを持つサイトをセットアップしました。Chrome および Safari では、サービス エリア タブに移動してサービス エリアを選択すると、そのエリアのホームページに移動します。

この時点で、ユーザーが選択したエリアを保存するセッションが開始され、サイトの別のページにアクセスすると、選択した場所のヘッダーに場所固有の広告が表示されるか、ホームを選択すると、選択したエリアのホームにリダイレクトされますページ。

Firefox の問題は、サービス エリアを選択してそのエリアのホームページに移動すると、メニューから別のページを選択すると、設定されたサービス エリアが別のエリアに変更されることです。これは、カスタム ホームページから別のメニュー ページに移動した場合にのみ発生します。

これはセッションを設定するコードです:

session_start();

$cur_url = dd_cur_page_url();

if ('local_home_pages' == get_post_type() && $cur_url != $_SESSION['dd_location']['home']) {
    $cur_url_mod = str_replace('carpet-cleaning_', '', $cur_url);
    $url_parts = explode('/', $cur_url_mod);
    $url_parts_count = count($url_parts);
    $cur_page = $url_parts[$url_parts_count - 2];
    $location_parts = explode('_', $cur_page);
    $place = trim(str_replace('-', ' ', $location_parts[0]));
    $state = trim(str_replace('-', ' ', substr($location_parts[1], 2)));
    $state_parts = explode('-', $location_parts[1]);
    $state_abv = trim($state_parts[0]);
    $county = trim(str_replace('-', ' ', $location_parts[2]));
    $_SESSION['dd_location'] = array(
            'home' => $cur_url,
            'place' => $place,
            'state' => $state,
            'state_abv' => $state_abv,
            'county' => $county);
}

これは、一般的なホームページでのみ実行されるリダイレクト コードです。

session_start();

$cur_url = dd_cur_page_url();

if (is_front_page() && isset($_SESSION['dd_location']['home'])) {
    $location = $_SESSION['dd_location']['home'];
    header('Location:' . $location);
}
4

1 に答える 1