簡體   English   中英

如何使用 PHP 驗證 forms 並顯示錯誤消息?

[英]How do I validate forms and present error messages using 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,這是不可能的。 如您所見,我是一個新手,所以請幫助我。

您始終可以將表單的操作提交給自己(相同的 PHP 腳本)並在那里執行您的驗證,如果它通過繼續到另一個 url。 然后在您的表單中編寫一些條件以插入 CSS class 以突出顯示錯誤的字段或顯示消息。

丑陋的形式:

<?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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM