Php SQL为会话或变量分配错误?
我已经为一个网站创建了登录表单和注册表单 表单被发布到checklogin.php和checksign.php进行验证,但是当它发现任何错误时,会在单独的文件中显示它们 以下是以下验证语句的错误消息Php SQL为会话或变量分配错误?,php,sql,session,variables,Php,Sql,Session,Variables,我已经为一个网站创建了登录表单和注册表单 表单被发布到checklogin.php和checksign.php进行验证,但是当它发现任何错误时,会在单独的文件中显示它们 以下是以下验证语句的错误消息 if (!$_POST['fullname'] | !$_POST['myusername'] | !$_POST['mypassword'] | !$_POST['remypassword']) { die('You did not complete all of the r
if (!$_POST['fullname'] | !$_POST['myusername'] | !$_POST['mypassword'] | !$_POST['remypassword']) {
die('You did not complete all of the required fields');
}
我的问题是:如何在同一页中显示它们?例如;在窗体旁边的标签中。谢谢,任何提示都会有很大帮助。这是我制作的网站您的表单,将数据发布到checklogin.php,而不是将数据发布到index.php,并在该页面上处理验证
<form class="clearfix" action="checklogin.php" method="post">
在过去,我使用了一个自定义错误处理程序,它使用会话来存储错误,我建议这样做 使用会话(在自定义错误处理程序中)存储错误的优点是,它们可以很容易地在您拥有的任何视图页面中读取和显示。例如,如果要在类中抛出错误,可以在将错误保存到会话中后随时显示它们。因此,对于这个特定的问题,您可以简单地将所有代码移动到一个php文件中,但这可能不是最好的解决方案
更不用说,如果“检查登录”重定向回登录页面,显然所有变量的值都不会持久。通过构造代码,使验证顺序可以在最终处理之前进行,如果没有,则再次显示表单页面
if($_SERVER['REQUEST_METHOD'] === 'POST')
{
$valid = false;
// perform input validations here
if(dosomething())
{
$valid = true;
}
// if valid, perform processing here, and either show success page (or redirect)
if($valid === true)
{
// SQL junk here
include('success.php');
exit();
}
}
// render original form after this line
为了清楚起见,您可能需要创建某种数据结构(如assoc数组)来存储每个字段的错误。然后在第节中,在每个标签旁边显示表单,您将检查数组是否存在错误,然后在希望与表单内联的位置打印它们。