复制PHP教程代码后表单验证功能失效 空字段无错误提示求助
问题根因
你在顶部PHP的表单验证逻辑中生成错误提示信息、赋值给$createUsernameError和$createUserPasswordError变量后,在渲染HTML页面的阶段,又重新将这两个变量初始化为空字符串,直接覆盖了之前生成的错误提示内容,因此页面不会显示任何报错信息。
修复方案
你只需要调整错误变量的初始化位置即可:
- 删除
<?php require('static/header.php'); ?>之后的两行变量初始化代码:
<?php $createUsernameError = ""; $createUserPasswordError = ""; ?>
- 将上述两行初始化代码移到PHP代码段最顶部,放在
include('php/connection.php')之后,这样既可以避免未定义变量的报错,也不会覆盖表单验证阶段生成的错误提示:
<?php include('php/connection.php'); // 初始化错误提示变量 $createUsernameError = ""; $createUserPasswordError = ""; // 原有表单验证逻辑保持不变 if( isset( $_POST["createUserBtn"])){ // 你的原有代码无需修改 } ?>
补充优化建议
- 当前的SQL拼接逻辑存在SQL注入风险,建议改用预处理语句(prepared statement)处理数据库写入操作。
- 不要明文存储用户密码,建议使用PHP内置的
password_hash()函数对密码做哈希加密后再写入数据库。
内容的提问来源于stack exchange,提问作者Matthew Webster
相关产品推荐
相关产品推荐

