Как сделать сайт → Уроки PHP → Повторный вывод формы при некорректном вводе
Повторный вывод формы при некорректном вводе
При некорректно вводимой информации пользователем, будь то email или повтор пароля, будет удобнее вновь отобразить форму, а также информативное сообщение о возникшей проблеме. Вы поступите с пользователем гораздо мягче, если при повторном выводе формы заполните ее поля значениями, которые он вводил в первый раз. Нет ничего хуже, чем, заполнив длинную форму, вдруг узнать, что вы забыли установить флажок и должны все начать с нуля.Отображение сообщения об ошибке и повторный вывод формы с заполненными полями
<html> <head> <title>Регистрация нового пользователя</title> </head> <body> <?php // Проверить отправленные значения if ($_POST["submit"]){ require_once('db_login.php'); require_once('DB.php'); $connection = DB::connect("mysql://$db_username:$db_password@$db_host/$db_ database"); if (DB::isError($connection)){ die("Ошибка подключения к базе данных: <br />". DB::errorMessage($connection)); } // Не забывайте использовать функцию htmlentities для предотвращения // атак межсайтового скриптинга $username = $_POST["username"]; $username = mysql_real_escape_string( get_magic_quotes_gpc()?stripslashes($username):$username); $password = $_POST["password"]; $password = htmlentities( get_magic_quotes_gpc()?stripslashes($password):$password); $email = $_POST["email"]; $email = htmlentities( get_magic_quotes_gpc()?stripslashes($password):$password); $phone = $_POST["phone"]; $phone = htmlentities( get_magic_quotes_gpc()?stripslashes($phone):$phone); $error = ""; if (is_null($username == "")) { $error .= "Имя пользователя не может быть пустым.<br />"; } if ($password == "") { $error .= "Пароль не может быть пустым.<br />"; } if ($email == "") { $error .= "Адрес электронной почты не может быть пустым.<br />"; } if ($phone == "") { $error .= "Номер телефона не может быть пустым.<br />"; } // Запрос с информацией, полученной от пользователя $query = "SELECT * FROM users WHERE username = '$username'"; // Выполнить запрос к базе данных $result = $connection->query($query); if (DB::isError($result)) { die("Ошибка исполнения запроса к базе данных: <br />".$query." " .DB::errorMessage($result)); } $user_count = $result->numRows(); if ($user_count > 0) { $error .= "Error: Username $username is taken already. Please select another.<br />"; } if ($error) { echo $error; } else { echo "Добро пожаловать.". $username; /* . . . Выполняемый код при доступе… . . . */ exit; } } ?> // Этот сценарий выполняет обработку результатов и отображает форму <form action="<?php echo htmlentities($_SERVER["PHP_SELF"]); ?>" method="POST" onsubmit="return check_valid(this);" id="test1" name="test1"> <table> <tr> <td width="30%" align="right">Username: <td><input type="text" name="username" value="<?php echo $username; ?>" /> </td> </tr> <tr> <td align="right">Password:</td> <td><input type="password" name="password" value="<?php echo $password; ?>" /> </td> </tr> <tr> <td align="right">Phone:</td> <td><input type="phone" name="phone" value="<?php echo $phone; ?>" /> </td> </tr> <tr> <td align="right">Email:</td> <td><input type="email" name="email" value="<?php echo $email; ?>" /> </td> </tr> <tr> <td> <td><input type="submit" name="submit" value="Submit" /></td> </tr> </table> </form> </body> </html>После отправки формы отображается сообщение об ошибке и сама форма с заполненными полями! Если все данные соблюдены правилами, код выдаст сообщение: Добро пожаловать “Например” Николай.
Скачайте бесплатно 10 видеоуроков PHP + MySQL одним архивом
Если этот сайт оказался вам полезен, пожалуйста, посмотрите другие наши статьи и разделы.
Код кнопки: |
Теперь нажмите кнопку, что бы не забыть адрес и вернуться к нам снова.
|