我想在每个网址上显示不同的字词。
$host = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if($host=="www.thesofacompany.ca/index.php?route=information/contact"){
echo "A";
}
if($host=="www.thesofacompany.ca/index.php?route=information/information&information_id=4") //This if statement isn't working..
{
echo "B";
}
这是我用过的if语句..但第二个if语句不起作用。即使$ host具有正确的字符串,程序也会跳过第二个if语句。
特殊角色&让它不起作用?
答案 0 :(得分:0)
您应该使用您给出的参数,而不是依赖服务器变量。
也就是说,无论如何,假设您正在index.php
工作是相当安全的,如果服务器名称错误,那么您将在一个完全不同的网站上。
所以你的if
应该是:
if( isset($_GET['route'],$_GET['information'])
&& $_GET['route'] == "information/information"
&& $_GET['information'] == 4) {
echo "B";
}
答案 1 :(得分:0)
只是一个猜测,但字符串比较区分大小写,所以如果url的大小写不正确,它将评估为false。如果您在IIS上托管,这可能是一个问题,因为IIS不区分大小写。您可能想尝试:
$host = strtolower($_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']);
if($host=="www.thesofacompany.ca/index.php?route=information/contact"){
echo "A";
}
if($host=="www.thesofacompany.ca/index.php?route=information/information&information_id=4") //This if statement isn't working..
{
echo "B";
}
这只会确保你有一个小写字符串来比较。