我如何计算PHP中的表单验证错误?

leo*_*rce 0 php forms

这是一个从mysql数据库预填充表单值的页面.人们可以编辑表单并更新数据库记录.

我正在检查字段是否为空并创建错误变量.提交表单并重新呈现页面时,错误变量(保留为空的错误变量)变为true,因此我在页面上回显错误消息.

这只是回显错误消息的部分,而不是获取数据库字段的其他部分,然后创建错误变量,然后将变量渲染回页面刷新等.

<?php
    if ($error != '') {
        echo '<div class="error top">';
        echo $error;
        echo "<ul>";
        if ($clientnameErr != '') { echo $clientnameErr; }
        if ($ponumberErr != '') { echo $ponumberErr; }
        if ($dropdate1Err != '') { echo $dropdate1Err; }
        if ($dropqty1Err != '') { echo $dropqty1Err; }
        if ($postage1Err != '') { echo $postage1Err; }
        echo '</ul></div>';
    }
?>
Run Code Online (Sandbox Code Playgroud)

所以我想计算所有真实的错误并将该数字作为变量.我怎么做?

所以例如,如果clientname,ponumber和dropdate1被留空,那么这将是3个空,$ clientnameErr,$ ponumberErr和$ dropdate1Err的错误消息将回显,因为那3个if语句将为真,所以我需要变量等于3,所以我可以打印出来.

实际上我将继续展示它是如何制作所需的某些字段,然后创建错误变量,以防你需要它来解决上述问题.

if ($clientname == '' || $ponumber == '' || $dropdate1 == '' || $dropqty1 == '' || $postage1 == '') {
  $error = '<p>ERROR: Please fill in all required fields!</p>';
  if ($clientname == '') { $clientnameErr = '<li>Missing Client Name!</li>'; }
  if ($ponumber == '') { $ponumberErr = '<li>Missing PO Number!</li>'; } 
  if ($dropdate1 == '') { $dropdate1Err = '<li>Missing Drop Date 1!</li>'; }
  if ($dropqty1 == '') { $dropqty1Err = '<li>Missing Drop Quantity 1!</li>'; }
  if ($postage1 == '') { $postage1Err = '<li>Missing Postage 1!</li>'; }
}
Run Code Online (Sandbox Code Playgroud)

Joh*_*nde 5

使用数组来保存错误.然后你可以简单地使用count()它来得到你的错误总数:

$errors = array();
if ($clientname == '') {
    $errors['clientname'] = '<li>Missing Client Name!</li>'
}
if ($ponumber == '') {
    $errors['ponumber'] = '<li>Missing PO Number!</li>'
}

$numErrors = count($errors);
if ($numErrors > 0) {
  echo '<p>Total errors: ' . $numErrors . '</p>';
  $error = '<p>ERROR: Please fill in all required fields!</p>';
  echo "<ul>";
  echo implode("\n", $errors);
  echo "</ul>";
}
Run Code Online (Sandbox Code Playgroud)