-1

我正在寻找一种简单的方法来纠正错误,例如密码不匹配和人们将空白数据插入 HTML 表单中。

当发生这种情况时,我想使用 PHP 来让我返回一个错误,我正在考虑使用 if 语句,但意识到如果它发生它不会显示一个以上的错误。

这是我正在做的一个示例,请记住 $firstname 的输入来自 POST:

if ($firstname == "")
{
$_SESSION['nofirstname'] = 1;
header('Location: register.php');
}

在 register.php 中,它获取了这个,并警告用户他没有输入名字。这很酷,但如果有任何错误,则不会显示其他错误。我猜开关和数组是前进的方向,但我真的不明白如何向数组添加条目。

有谁能帮忙吗?

4

4 回答 4

1
session_start();
....
    $_SESSION['flag']=false;
    if ($firstname == "")
    {
    $_SESSION['nofirstname'] = 1;$_SESSION['flag']=true;
    }
    if ($lastnamee == "")
    {
    $_SESSION['nolastname'] = 1;$_SESSION['flag']=true;
    }
    ...

    header('Location: register.php');

在 register.php 中

session_start();
...
    if ($_SESSION['flag']==true){
       if ($_SESSION['nofirstname']==1) {///message}
       if ($_SESSION['nolastname']==1) {///message}
       ...
    }
于 2013-04-26T13:40:01.320 回答
1

使用嵌套的 if,例如;

<?php
    if($firstcond){
        if($secondcond){

        }else{
             $_SESSION['error'] = 'Second Condition not met!';
             header('Location: register.php');
             //error
        }
    }else{
        $_SESSION['error'] = 'First Condition not met!';
        header('Location: register.php');
        //error
    }
?>

这意味着为了$secondcond得到验证,$firstcond必须先通过您对其执行的任何检查:)

于 2013-04-26T13:26:53.557 回答
1
    session_start();
    ob_start()

 if ($firstname == "")
    {
    $_SESSION['nofirstname'] = "Enter your name";
    header('Location: register.php');
    }

重定向页面并显示

echo isset($_SESSION['nofirstname'])?$_SESSION['nofirstname']:'';

尝试这个。

于 2013-04-26T13:27:11.833 回答
1

尝试这个:

session_start();

$errors = array();

if ($firstname == "")
{
    $errors['nofirstname'] = 1;
}
if ($lastname == "")
{
    $errors['nolastname'] = 1;
}

$run = 1;
foreach ($errors AS $key => $value)
{
    $_SESSION[$key] = $value;
    $run = 0;
}

if (!$run)
    header('Location: register.php');
于 2013-04-26T13:27:59.620 回答