2013-12-05 4 views
1

Мне нужно, чтобы домен example.com перенаправлял на субдомен a.example.com, когда я печатаю адресную строку.php set cookie redirect

<script type="text/javascript"> 
$(function(){ 
    var city = readCookie('city'); 
    if(city==null && city==''){ 
    window.location.href = 'http://' + city + '.example.com'; 
} 
$('#citygo').change(function(){ 
    var city = $(this).val(); 
    createCookie('city', city, 28); 
    window.location.href = 'http://' + city + '.example.com'; 
}); 
}); 
</script> 

<body> 
<select id="citygo"> 
    <option value="0">Select City</option> 
    <option value="amsterdam">Amsterdam</option> 
    <option value="newyork">New York</option> 
    <option value="london">London</option> 
    <option value="cardiff">Cardiff</option> 
    </select> 
</body> 

Куки-файлы на стороне сервера не хранятся, поэтому домен не может запомнить поддомен. Что я делаю не так? Любая помощь будет очень оценена.

<?php 
$hour = time() + 50400; 
setcookie(My_Site_Location, $_POST['citygo'], $hour); 

$Loc=$_COOKIE["city"]; 
if(isset($_POST['city'])) 
$Loc=$_POST['city']; 

if (empty($Loc)) { 
    header("Location: http://{$_COOKIE["city"]}.example.com"); 
    } else { 
    header("Location: example.com/$Loc.php"); 
} 
?> 

ответ

-1

я столкнулся же проблема, но я решил свою проблему, используя приведенный ниже код в PHP Вы не устанавливая путь и срок действия на печенье. Если у вас есть подкаталоги, обычно полезно установить мастер-файл cookie, который является корневым путем '/'.

Чтобы прочитать куки с помощью PHP, попробуйте это ...

$cookies = explode(';', $_SERVER['HTTP_COOKIE']); 

... и поиск массив для "города" печенье. Дальнейшие документы по настройке и чтению файлов cookie с использованием полностью PHP, check here.

Вы должны вызвать эту функцию до того, как на другой будет отображаться любой другой код. (Перед заголовками)

Это поможет вам

+0

Не могли бы вы предоставить более подробную информацию? Благодарю. – user3040048

0

setcookie() По умолчанию будет использовать текущий хост в качестве домена; переопределить это, необходимо задать его явно:

setcookie(My_Site_Location, $_POST['citygo'], $hour, '/', 'example.com'); 

О значении домена, manual говорит, что это:

Старые браузеры по-прежнему реализует устаревшие RFC 2109 может потребовать ведущий ., чтобы соответствовать все поддомены.