2012-04-11 101 views
0

我已经为网站创建了登录表单和注册表单。将SQL分配给会话或变量的错误?

将表单发布为checklogin.php和checksign.php进行验证,但是当它发现任何错误时,它会在单独的文件中显示它们。

login

以下是以下验证语句

if (!$_POST['fullname'] | !$_POST['myusername'] | !$_POST['mypassword'] | !$_POST['remypassword']) { 

     die('You did not complete all of the required fields'); 
    } 

Error

我的问题是错误消息:我如何让他们在同一个页面?例如;在表单旁边的标签中。谢谢,任何提示都会有很大的帮助。这是网站即时通autosales

回答

2

通过构造你的代码,以便确认的订单可以在最终处理前来,如果不是,显示表单页面再次

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 
+1

只是要清楚,你可能会想创建某种数据结构(如assoc数组)来存储每个字段的错误。然后在显示每个标签旁边的表单的部分中,您将检查数组是否存在错误,然后将它们打印到要与表单内联的位置。 – prodigitalson 2012-04-11 03:19:59

0

您的表单将数据发布到checklogin.php,而不是发布到index.php的数据,并处理该页面上的验证。

<form class="clearfix" action="checklogin.php" method="post"> 
0

在过去,我已经使用了使用会话存储错误的自定义错误处理程序,我建议。

使用会话(在自定义错误处理程序中)存储错误的优点是,它们可以轻松地读取并显示在您拥有的任何视图页中。例如,如果您想在类中抛出错误,则只要您选择将它们保存到会话中,就可以显示它们。所以,虽然对于这个特定的问题,你可以简单地将所有的代码移动到一个PHP文件中,但这可能不是最好的解决方案。

更不用说,如果您的“检查登录”重定向回登录页面,显然所有变量的值将不会持续。