基于post变量的php头重定向

基于post变量的php头重定向,php,redirect,Php,Redirect,我有来自5个不同来源的访问者访问我的网站,每一个都会根据其来源在url中发送一个变量,如果这些来源发送访问者,我想将他们发送到与用户更相关的单独页面 <?php $var = $_GET["var"]; if( $var='site1'){ header('Location: ' . "http://www.example.com/site1page"); }else{ header('Location:

我有来自5个不同来源的访问者访问我的网站,每一个都会根据其来源在url中发送一个变量,如果这些来源发送访问者,我想将他们发送到与用户更相关的单独页面

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


然而,无论$var出现在什么位置,它都会到达第一个标题位置(site1page),有人能解释为什么会发生这种情况吗?

您的代码正在执行赋值(单等号)。您需要相等测试(双等号):


您的代码正在执行赋值(单等号)。您需要相等测试(双等号):



如果该代码是您正在运行的实际代码-这是因为您使用的是“=”赋值操作,而不是“=”比较运算符。PHP允许您以这种方式咬自己,而不会发出任何警告。

如果该代码是您正在运行的实际代码,那是因为您使用的是“=”赋值操作,而不是“=”比较运算符。PHP可以让你这样咬自己,而不需要任何警告。

此外,我认为第二个标题行中的逗号会给你一个解析错误。

此外,我认为第二个标题行中的逗号会给你一个解析错误。

谢谢,我现在感觉很迟钝,真不敢相信我错过了。谢谢,我现在觉得自己很迟钝,真不敢相信我错过了。
<?php if( $var=='site1') { header('Location: ' . "http://www.mysite.com/site1page"); } else { header('Location: ' . 'http://www.mysite.com/othersites/&?var='.$var,); } ?>