2009-10-02 4 views
0

У меня есть посетители, которые приходят на мой сайт из 5 отдельных источников, каждый отправляет переменную в URL-адресе, исходя из того, где она находится, в случае, если эти источники отправляют посетителей, я хочу отправить их на Отделите Thats страницы более релевантные для пользователяphp header redirect на основе post-переменных

<?php 
    $var = $_GET["var"]; 
    if($var='site1'){ 
       header('Location: ' . "http://www.example.com/site1page"); 
    }else{ 
       header('Location: ' . 'http://www.example.com/othersites/&?var='.$var,); 
    } 
?> 

однако независимо от того, что $ вар приходит в уже его будет к месту первого заголовка (site1page) Может кто-нибудь объяснить, почему это происходит?

ответ

4

Если код фактический код вы работаете - это потому, что вы используете «=», операцию присваивания вместо «==» сравнение оператор. PHP позволяет вам укусить себя таким образом без какого-либо предупреждения.

+1

Спасибо, я чувствую отсталость прямо сейчас, не могу поверить, что я пропустил это. – 2009-10-02 19:35:11

0

Ваш код выполняет присвоение (знак единого знака). Вы хотите, чтобы проверка на равенство (двойной знак равенства):

<?php if($var=='site1') { header('Location: ' . "http://www.mysite.com/site1page"); } else { header('Location: ' . 'http://www.mysite.com/othersites/&?var='.$var,); } ?> 
0

Кроме того, я думаю, что запятая во второй строке заголовка даст вам ошибку синтаксического анализа.