在这里,当页面第一次加载时,我总是得到成功验证图标。但是当我点击提交按钮时,验证工作-6ren">
gpt4 book ai didi

PHP 验证显示错误的图标

转载 作者:行者123 更新时间:2023-12-04 09:33:01 24 4
gpt4 key购买 nike

我是 PHP 新手。我在这里尝试在验证失败时显示错误图标
PHP

<?php
// define variables and set to empty values
$nameErr = "";
$name = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$nameErr = "Name is required";
} else {
$name = test_input($_POST["name"]);
}
}
?>
HTML
<div class="<?php if (empty($nameErr)){ echo 'success-validate';} else { echo 'failure-validate'; } ?>">                
</div>
在这里,当页面第一次加载时,我总是得到成功验证图标。但是当我点击提交按钮时,验证工作正常。请帮我解决问题。

最佳答案

所以,这里的问题是你有 3 个状态( 有效 无效 没有验证使用 ),而不是你认为的两个第一的。
因此,最简单的解决方案是添加另一个标志,表明验证已开始,例如:

// define variables and set to empty values
$nameErr = "";
$name = "";
$validationApplied = false; // here
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$validationApplied = true;

if (empty($_POST["name"])) {
$nameErr = "Name is required";
} else {
$name = test_input($_POST["name"]);
}
}
在您的 html 中,您可以像这样检查两个变量:
<div class="<?php if ($validationApplied) { echo empty($nameErr) ? 'success-validate' : 'failure-validate'; } ?>">                
</div>
另一种解决方案是同时检查 $nameErr$_SERVER["REQUEST_METHOD"] == "POST" .它与上述方法相同,只是您检查的不是不同的标志 REQUEST_METHOD :
<div class="<?php if ($_SERVER["REQUEST_METHOD"] == "POST") { echo empty($nameErr) ? 'success-validate' : 'failure-validate'; } ?>">                
</div>

关于PHP 验证显示错误的图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62738362/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com