2011-06-30 103 views
0

比方说,我们有这样的形式:如何验证表单并使用PHP显示错误消息?

<form action="submit.php" method="post"> 
Username: <input type="text" name="username" /> 
Password: <input type="password" name="password" /> 
<input type="Submit" value="Login" /> 
</form> 

如何验证使用submit.php这种形式,以及如何我提出了一个错误信息,如果它没有通过验证?使用Javascript验证,我只是将某些元素的innerHTML更改为错误消息,但这对于PHP来说是不可能的。正如你所看到的我是一个新手,所以请帮助我。

回答

0

在丑陋的形式:

<?php 

$errors = array(); 

if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
    $username = $_POST['username']; 
    $pw = $_POST['password']; 

    if (empty($username)) { 
     $errors[] = "Please enter your username"; 
    } 
    if (empty($pw)) { 
     $errors[] = "Please provide your password"; 
    } 
    if (!canLogin($username, $pw)) { 
     $errors[] = "Invalid login. Try again"; 
    } 

    if (count($errors) == 0) { 
     ... login is ok, go do something else 
    } 
} 

# Display error conditions, if there are any 
if (count($errors) > 0) { 
    echo "<p>The following errors must be corrected:</p><ul><li>"; 
    echo implode("</li><li>", $errors); 
    echo "</ul>"; 
} 

?> 

<form ...> 
<input .... value="<?php echo htmlspecialchars($username) ?>" /> 
<input ...> 
</form> 
+0

如果我使用echo,那么错误信息将显示在页面的最后,对吧? !canLogin()是什么意思?内爆是什么意思? – LonelyWebCrawler

+0

不,它被回传到php代码所在的页面。在这种情况下,就在表单标签之前。 –

+0

做什么!canLogin()和implode()是什么意思? – LonelyWebCrawler

0

您可以始终将表单的操作提交给自己(相同的PHP脚本)并在那里执行验证,并且如果它继续传递给另一个url。然后在你的表单中写入一些条件来插入一个CSS类来突出显示错误或显示消息的字段。

+0

如何插入一个CSS类? – LonelyWebCrawler

相关问题