为了账号安全,请及时绑定邮箱和手机立即绑定

PHP 验证显示错误的图标

PHP 验证显示错误的图标

PHP
三国纷争 2023-07-08 21:58:12
我是 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"]);  } }?>超文本标记语言<div class="<?php if (empty($nameErr)){ echo 'success-validate';} else { echo 'failure-validate'; } ?>">                </div>在这里,当页面第一次加载时,我总是会看到成功验证图标。但是当我单击提交按钮时,验证工作正常。请帮我解决这个问题。
查看完整描述

1 回答

?
PIPIONE

TA贡献1829条经验 获得超9个赞

所以,这里的问题是你有 3 种状态(valid、no-valid和no-validation-used),而不是你一开始想到的两种状态。


因此,最简单的解决方案是添加另一个标志来告诉验证已经开始,例如:


// 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>


查看完整回答
反对 回复 2023-07-08
  • 1 回答
  • 0 关注
  • 108 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信