2011-09-12 121 views
0
<?php 
$error = 'error'; 
$check = $_SERVER['REQUEST_URI']; 
if($check == "/bleachers.php") 
{ 
    echo 'bleachers'; 
} 
elseif($check == 'runners.php') 
{ 
    echo 'runners'; 
} 
else 
{ 
    echo $error; 
} 
?> 

我想弄清楚爲什麼這不起作用。我正在嘗試根據網站的網址回顯文本。如果網址是site.com/bleachers.php echo bleachers elseif site.com/runners.php echo runners else echo error。如果url聲明

我在url中輸入site.com/bleachers,而打印出錯誤。

+2

您是否使用了'var_dump($ _ SERVER ['REQUEST_URI'])'來查看它實際是什麼?什麼服務器軟件? – alex

+0

試試'echo $ check;'這樣你就可以真正看到你做錯了什麼,並停止猜測。在調試時不要做任何假設。隨時調試,打開你的大腦。 – hakre

+2

調試101:當你有兩件事情你希望是平等的,但程序告訴你沒有,通常下一步是打印它們,看看它自己在說什麼。 – Jon

回答

2

開始發生變化:

else echo $error; 

到:

else echo $_SERVER['REQUEST_URI']; 

這會幫助你確定哪些實際上應在if語句。

+0

看到我搞砸了,謝謝 – user836910

0

您可能正在IIS上運行,其中REQUEST_URI環境變量未設置。

You can add it yourself

另外,您應該養成自己調試代碼的習慣。在這裏開始使用...

var_dump($_SERVER['REQUEST_URI']); 

它確實設置,確保它包含正在嘗試匹配正確的字符串。