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

为何PHP无法显示邮箱验证错误?附代码求助

邮箱验证错误时输入框边框变红功能失效的修复方案

你的代码存在两个核心问题导致功能无法生效:

  • 把<style>标签直接嵌套在<input>标签的属性列表中,这违反了HTML语法规则,浏览器无法识别这种错误的结构。
  • <input>标签未正确闭合就插入PHP代码,存在语法错误。

下面提供两种可行的修复方式:

方法一:使用内联样式(直接给输入框加style属性)

<?php
$emailError = false;

if (isset($_POST['submit_button'])) {
    $email = $_POST['email'];
    
    if (empty($email) || !filter_var($email, FILTER_VALIDATE_EMAIL)) {
        $emailError = true;
    }
}
?>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<form method="post">
    <div class="input-group" id="email-input">
        <input type="text" id="email" name="email" autocomplete="off" placeholder="Email"
               <?php if ($emailError) echo 'style="border-color: #ff0000;"'; ?>>
    </div>
    <button id="submit-button" name="submit-button" type="submit">Sign Up!</button>
</form>
</body>
</html>

方法二:将样式放在head标签内

<?php
$emailError = false;

if (isset($_POST['submit_button'])) {
    $email = $_POST['email'];
    
    if (empty($email) || !filter_var($email, FILTER_VALIDATE_EMAIL)) {
        $emailError = true;
    }
}
?>
<!DOCTYPE html>
<html>
<head>
    <?php if ($emailError): ?>
    <style>
        #email { border-color: #ff0000; }
    </style>
    <?php endif; ?>
</head>
<body>
<form method="post">
    <div class="input-group" id="email-input">
        <input type="text" id="email" name="email" autocomplete="off" placeholder="Email">
    </div>
    <button id="submit-button" name="submit-button" type="submit">Sign Up!</button>
</form>
</body>
</html>

两种方法都能解决问题:方法一直接给错误状态的输入框添加内联样式,方法二则把错误样式放在页面头部的style标签中,均符合HTML语法规范,浏览器可正确解析并应用样式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 00:03:27