2013-04-21 59 views
0

我正在檢查是否傳遞了特定的參數以及是否存在該參數的文件夾。前如何在HTML/PHP中打印錯誤消息?

if ((! isset($_GET["name"])) or (! is_dir($_GET["name"]))) { 

    print "----------------USER NOT FOUND-----------------" ; 
} 

,在我的網址,如果有名稱=埃裏克,如果該文件夾不以該名稱存在,我想打印的錯誤消息。 另外我想檢查參數'name'是否使用isset傳遞到URL。 不知何故上述不起作用,我無法弄清楚爲什麼。 任何輸入都會有所幫助。

感謝

+0

一切似乎沒問題。它會返回一個錯誤嗎?會發生什麼,而不是按照它應該的方式工 – Think 2013-04-21 19:36:17

+0

我總是做'echo'用戶沒有找到「;'並使用'||'作爲'或'。他們都不會有什麼不同,但你可以嘗試看看是否有變化。 – 2013-04-21 19:36:41

+0

後者實際上會有所作爲,我在我的回答中解釋得更好。 – 2013-04-21 19:46:32

回答

0

or有不同的用途。無論何時你嘗試做的事情都不起作用,它就會執行另一個位。典型的已棄用示例將在您嘗試執行某些數據庫交互時寫回到$STH = mysql_query('SELECT * FROM users') or die();。對於你的情況,你應該使用||運營商,而不是as explained in the documentation

此外,你不檢查是否有人提交了一些東西。如果表單沒有提交,這絕不會顯示任何內容。這兩個錯誤固定的,你的代碼應該是這個樣子:

if (empty($_GET["name"]) || !is_dir($_GET["name"])) { 
print "----------------USER NOT FOUND-----------------" ; 
} 

因爲,如果有人提交表單,將URL example.com/index.php?name=,這使得$_GET['name'],同時它是空進行設置。我假設你想說在這種情況下沒有找到用戶。

+0

但是'或'在這種情況下完美的工作。另外,只要你記住優先級,'OR'可以用來代替'||'。 – Think 2013-04-21 20:35:20