Как проверить формы и представить сообщения об ошибках с помощью PHP? - PullRequest
0 голосов
/ 30 июня 2011

Допустим, у нас есть эта форма:

<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. Как видите, я новичок, поэтому, пожалуйста, помогите мне.

Ответы [ 2 ]

0 голосов
/ 30 июня 2011

В безобразном виде:

<?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 голосов
/ 30 июня 2011

Вы всегда можете сделать так, чтобы действие формы отправлялось самому себе (тот же сценарий PHP) и выполнять там проверку, а если оно проходит, переходить к другому URL.А затем в своей форме напишите некоторые условные выражения для вставки CSS-класса, чтобы выделить поле с ошибкой или показать сообщение.

...