基本上我希望以这样一种方式编写我的注册页面,当用户被重定向回时,会返回错误(例如无效的用户名,短密码,太长的用户名,无效的电子邮件等)(同时)同一页。
我经常看到很多网站都有这个:
您提交的数据中有X个错误:
- 用户名太短
- 密码太短
- 等。等
醇>
当用户提交表单并重定向回来时,会返回这些错误。
我想通过$_GET
中的数字返回错误但是我想避免这种情况。我也想避免使用JS / AJAX和$_SESSION
。
答案 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.