2010-08-08 44 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

相关问题