2015-03-28 1 views
1

У меня есть сайт с контентом, который отличается для местоположений на рынке, поэтому я устанавливаю cookie для местоположения пользователей. Если пользователь пытается сразу перейти на целевую страницу, я хотел бы вставить местоположение рынка в URL.Вставить значение в URL-адрес

Например, если пользователь пытается собирается www.mysite.com/packages Я хотел бы обновить URL, чтобы быть www.mysite.com/tampa/packages

У меня есть печенье набор под названием «рынок», и это код, который я пытаюсь, но это ISN Не работаем.

<?php 
switch ($_COOKIE['market']) { 

    case "tampa": 
    $url = $_SERVER['REQUEST_URI']; 
    switch (true) { 
     case strstr($url, 'packages'): 
     $currenturl = str_replace('/packages','/tampa/packages/',$url); 
     return $currenturl; 
     break; 
    } 
    break; 

    // etc for other markets 
} 

Является ли PHP правильным подходом для этого? Есть ли лучшее решение, которое будет работать? Спасибо заранее за любую помощь.

ответ

0

Вы должны использовать header() функцию, чтобы перезагрузить страницу с новым URL следующим образом:

Вместо:

return $currenturl; 

Do:

Header('Location: '.$currenturl); 

Убедитесь, что нет никакого вывода на браузер, прежде чем делать это.

+0

Я уверен, что это правильное решение, я использую MODX CMS, поэтому мне просто нужно найти другую строку, чтобы добавить как echo $ modx-> sendRedirect ("$ currenturl", array ('type '=>' REDIRECT_HEADER ')); '(мне пришлось сделать что-то подобное, когда я установил другой заголовок() для установки cookie). Большое спасибо. – Robert

+0

Что вам нужно, чтобы «выяснить другую строку»? – D4V1D

+0

Например, когда я установил свои файлы cookie, мне пришлось написать свой код как 'case 'Tampa': $ ip_market = 'tampa'; header ("Set-Cookie: market = $ ip_market; Path = /; Expires =". Gmdate ('D, d MYH: i: s \ G \ M \ T', time() + 720 * 60 * 60)); echo $ modx-> sendRedirect ('tampa /', array ('type' => 'REDIRECT_HEADER')); break; ' – Robert