PHP 验证显示错误的图标

我是 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>

在这里,当页面第一次加载时,我总是会看到成功验证图标。但是当我单击提交按钮时,验证工作正常。请帮我解决这个问题。


三国纷争
浏览 140回答 1
1回答

PIPIONE

所以,这里的问题是你有 3 种状态(valid、no-valid和no-validation-used),而不是你一开始想到的两种状态。因此,最简单的解决方案是添加另一个标志来告诉验证已经开始,例如:// define variables and set to empty values$nameErr = "";$name = "";$validationApplied = false;&nbsp; // hereif ($_SERVER["REQUEST_METHOD"] == "POST") {&nbsp; $validationApplied = true;&nbsp;&nbsp;&nbsp; if (empty($_POST["name"])) {&nbsp; &nbsp; $nameErr = "Name is required";&nbsp; } else {&nbsp; &nbsp; $name = test_input($_POST["name"]);&nbsp; }&nbsp;}然后,您可以在 html 中检查这两个变量,如下所示:<div class="<?php if ($validationApplied) { echo empty($nameErr) ? 'success-validate' : 'failure-validate'; } ?>">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div>另一种解决方案是检查$nameErr和$_SERVER["REQUEST_METHOD"] == "POST"。它与上面的方法相同,只是代替您检查的不同标志REQUEST_METHOD:<div class="<?php if ($_SERVER["REQUEST_METHOD"] == "POST") { echo empty($nameErr) ? 'success-validate' : 'failure-validate'; } ?>">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div>
打开App,查看更多内容
随时随地看视频慕课网APP