You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

联系表单遭遇白屏死亡问题,求助排查错误原因

问题分析与修复方案

嘿,我帮你找出了代码里的几个关键问题,这些正是导致浏览器白屏崩溃的核心原因:

1. 非法变量名直接引发PHP语法错误

你定义的$15、$20、$25、$30这些变量名完全不符合PHP的语法规范——PHP要求变量名必须以字母(a-z/A-Z)或者下划线_开头,绝对不能以数字开头。这种语法错误会让PHP解释器直接停止运行,在默认的生产环境配置下(错误显示关闭),就会出现你看到的白屏现象。

修复方法:把这些变量名改成合法的,比如改成$bedrag15、$bedrag20这类可读性强的名称,或者$_15(前者更推荐,代码可读性更高)。

2. 复制粘贴导致的判断逻辑完全错误

看你后面构建消息的代码,所有的if判断都在检查$15:

if ($15 != null){ $message .= '15,-'; }
if ($15 != null){ $message .= '20,-'; }
if ($15 != null){ $message .= '25,-'; }
if ($15 != null){ $message .= '30,-'; }

这明显是复制粘贴时忘记修改变量名了,就算变量名合法了,逻辑也完全不对,根本无法正确识别用户选择的金额。

修复方法:把每个判断里的变量名对应改成各自的金额变量,比如第一个判断对应$bedrag15,第二个对应$bedrag20,以此类推。

3. 未检查POST变量是否存在(潜在的警告/错误)

你直接从$_POST数组里取值,比如$naam = $_POST['naam'];,如果用户提交表单时某个字段没有传值(或者表单没正确提交),会触发“未定义索引”的警告,在严格的错误模式下也可能导致脚本终止。

修复方法:用PHP7+的空合并运算符??或者isset()来安全取值,避免这类警告。


修正后的完整代码示例

// 安全获取表单字段,避免未定义索引错误
$naam = $_POST['naam'] ?? '';
$email = $_POST['email'] ?? '';
$adres = $_POST['adres'] ?? '';
$postcode = $_POST['postcode'] ?? '';
$telefoon = $_POST['telefoon'] ?? '';
$iban = $_POST['iban'] ?? '';

// 使用合法的变量名存储金额选项
$bedrag15 = $_POST['15'] ?? '';
$bedrag20 = $_POST['20'] ?? '';
$bedrag25 = $_POST['25'] ?? '';
$bedrag30 = $_POST['30'] ?? '';
$anderbedrag = $_POST['anderbedrag'] ?? '';

// 构建发送给管理员的消息
$message = $naam . "\n";
$message .= "jaarlijks bijdrage: ";

// 修正判断逻辑,对应各自的金额变量
if (!empty($bedrag15)){ 
    $message .= '15,- '; 
}
if (!empty($bedrag20)){ 
    $message .= '20,- '; 
}
if (!empty($bedrag25)){ 
    $message .= '25,- '; 
}
if (!empty($bedrag30)){ 
    $message .= '30,- '; 
}
if (!empty($anderbedrag)){ 
    $message .= $anderbedrag; 
}

另外,建议你在开发环境下开启PHP的错误显示,这样下次遇到问题时能直接看到错误信息,不用猜原因。可以在脚本开头加上:

error_reporting(E_ALL);
ini_set('display_errors', 1);

内容的提问来源于stack exchange,提问作者asgeira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 09:00:43