如何在注册页面上返回错误列表?

时间:2011-09-14 23:38:43

标签: php validation

基本上我希望以这样一种方式编写我的注册页面,当用户被重定向回时,会返回错误(例如无效的用户名,短密码,太长的用户名,无效的电子邮件等)(同时)同一页。

我经常看到很多网站都有这个:

  

您提交的数据中有X个错误:

     
      
  1. 用户名太短
  2.   
  3. 密码太短
  4.   
  5. 等。等
  6.   

当用户提交表单并重定向回来时,会返回这些错误。

我想通过$_GET中的数字返回错误但是我想避免这种情况。我也想避免使用JS / AJAX和$_SESSION

5 个答案:

答案 0 :(得分:1)

通常使用$_SESSION完成,您不希望出于某些无法解释的原因使用{{1}}。它们通常被称为 flash会话,因为一旦向用户显示了该信息,会话的该部分就会被破坏。

可以使用Cookie并自行管理,但我会坚持使用会话。请务必记住最终用户可以轻易篡改cookie。

答案 1 :(得分:1)

让页面将表单提交给自己,您不必返回任何内容。您只需要使代码处理用户第一次访问页面的情况和数据提交的情况。

答案 2 :(得分:0)

这里没有很多选择。

我会在$ _SESSION中传递它。

答案 3 :(得分:0)

我不知道这是不是很好的做法(或者甚至可以用php),但是我通过在表中返回错误消息然后让一些JavaScript代码显示它们来获得良好的结果。

答案 4 :(得分:0)

使用图书馆:

if ($_POST)
{
    $form_helper = new FormHelper();

    $form_helper->validate($_POST["username"], "username");
    $form_helper->validate($_POST["password"], "password");

    if (! $form_helper->notifications())
    {
        // Process form.
    }
}

// Show errors if necessary when rendering the form.

没有图书馆:

$errors = array();

if ($_POST)
{
    // Validate username by hand (let's pretend it passes).
    // Validate password by hand (let's pretend it fails).

    array_push($errors, "The username or password is incorrect.");

    if (! $errors)
    {
        // Process form.
    }
}

// Show errors if necessary when rendering the form.