PHP表单提交后如何回显输入数据?登录失败邮箱回显失效求助
修复PHP表单邮箱回显的问题
原代码存在几个明显的语法和逻辑错误,导致登录失败时无法正常回显邮箱内容:
- PHP起始标签写错了:应该是
<?php而非?PHP - 数组索引语法错误:
$_POST[''email]多了一个单引号,正确写法是$_POST['email'] - 逻辑嵌入方式错误:不能把完整的PHP判断直接塞进value属性的字符串里,得在HTML中嵌入PHP代码输出值
正确的邮箱输入框写法如下:
<input type="email" name="email" value="<?php echo isset($_POST['submit']) ? htmlspecialchars($_POST['email']) : ''; ?>">
补充说明
- 用三元运算符简化判断:表单提交后(检测到
submit按钮的POST请求),就输出用户输入的邮箱值,否则输出空字符串 - 加上
htmlspecialchars()转义内容,既能避免HTML语法冲突,还能防止XSS攻击
附上完整的表单示例,方便你参考:
<form method="post" action=""> <label>邮箱:</label> <input type="email" name="email" value="<?php echo isset($_POST['submit']) ? htmlspecialchars($_POST['email']) : ''; ?>"> <button type="submit" name="submit">提交</button> </form> <?php // 这里写你的登录验证逻辑 if(isset($_POST['submit'])){ $email = $_POST['email']; // 比如验证邮箱格式、匹配数据库用户信息等 // 验证失败时,页面刷新后邮箱输入框会自动保留用户输入的内容 } ?>
内容的提问来源于stack exchange,提问作者Manish
相关产品推荐
相关产品推荐

