1

我正在学习 PHP,此时我正在学习如何验证表单和客户端输入。

很明显,我拼错了,写了一些与 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;
}
}
?>

请不要“你为什么要做这个服务器端?Bla bla bla”,这只是一个“练习”

如果你能发现我在哪里犯了错误,请告诉我,如果你能告诉我为什么当我犯错时我只得到一个白屏,请也告诉我!:) 谢谢

4

2 回答 2

2

只是一个想法 - 你有没有通过php_info (); 错误报告已打开,致命错误等没有被压制并且错误没有被发送到文件?

(是的,我知道您说它已打开,并且您正在尝试在脚本开始时更新错误报告等,但我只是在检查它是否正在接受更改。):-)

本质上,如果错误报告真的打开了,你会看到一个错误。

于 2010-08-08T19:33:04.890 回答
2
if (strlen($_POST['my_name']) < 3) {
于 2010-08-08T19:36:02.040 回答