2010-08-08 70 views
1

我正在學習PHP,現在我正在學習如何驗證表單和客戶端輸入。PHP生成WSOD,雖然已打開,但沒有錯誤報告

很明顯,我拼錯了,寫了一些與PHP無關的東西或類似的東西,因爲我什麼也沒有,只是一個白色的屏幕,但我無法找到錯誤產生的地方。

一個奇怪的事情是,即使我已經把錯誤報告和錯誤我得到的顯示是所謂的WSOD(死亡的白色屏幕)

這是PHP代碼:

<?php 
error_reporting(E_ALL); 
ini_set('display_errors', 'On'); 
if (array_key_exists('_submit_check', $_POST)) { 
if (validate_form()) { 
    process_form(); 
} else { 
    show_form(); 
} 
} else { 
show_form(); 
} 

function process_form() { 
print "Hello, " . $_POST['my_name']; 
} 

function show_form() { 
print<<<HTML 
<form method="POST" action="$_SERVER[PHP_SELF]"> 
Your name: <input type="text" name="my_name"> 
<br> 
<input type="submit" value="Say HEEELLOOO!"> 
<input type="hidden" name="_submit_check" value="1"> 
</form> 
HTML; 
} 

function validate_form() { 
if (strlen($_POST['my_name'] < 3) { 
    return false; 
} else { 
    return true; 
} 
} 
?> 

請沒有「你爲什麼要這麼做服務器端?唧唧歪歪」,它只是一個「鍛鍊; Tibial」

如果你能發現在那裏我做了錯誤,請讓我知道,如果你可以告訴我爲什麼我什麼都得不到當我犯了一個錯誤的白色屏幕,請讓我知道! :)謝謝

回答

2
if (strlen($_POST['my_name']) < 3) { 
+0

是不是 if(strlen($ _ POST ['my_name'])<3){...?因爲strlen()是一個函數...所以基本上它是 如果(strlen(東西)小於三){然後返回false ... – Latze 2010-08-08 20:22:21

+0

真夠了......我確定了缺少的括號,但是在錯誤的位置,當我發佈迴應....編輯更正 – 2010-08-08 20:57:55

+0

謝謝你:) – Latze 2010-08-08 21:06:21

2

只是一個想法 - 你檢查通過php_info();是否打開錯誤報告,致命錯誤等沒有被壓制,並且錯誤未被髮送到文件?

(是的,我知道你說它已打開,並且您正在嘗試在腳本開始時更新錯誤報告等,但我只是檢查它是否正在收集更改。) :-)

實質上,如果真的打開了錯誤報告,您會看到一個錯誤。

+0

我明白你的意思了......給我一分鐘,我會確保它已打開。 – Latze 2010-08-08 19:35:44

+0

你在哪裏 - 錯誤存儲在一些.log文件中。我怎樣才能讓錯誤出現在屏幕上? – Latze 2010-08-08 19:40:39

相關問題