我正在学习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”,这只是一个“练习”
如果你能发现我犯了错误的地方,请告诉我,如果你能告诉我为什么除了白屏之外我什么也搞错了,请让我知道! :)谢谢
答案 0 :(得分:2)
只是一个想法 - 你通过php_info()进行了检查;是否打开了错误报告,没有压缩致命错误等,并且没有将错误发送到文件?
(是的,我知道你已经开启了,并且你在脚本开始时尝试更新错误报告等,但我只是检查它是否正在接收更改。): - )
从本质上讲,如果确实打开了错误报告,您会看到错误。
答案 1 :(得分:2)
if (strlen($_POST['my_name']) < 3) {