Небольшой кусок из регистрационной формы. Локальный хостинг осуществлен с помощью XAMPP.
Сделал попытку реализовать подход "Модель-Компонент-Ядро" (хотя ядра здесь нет), потому файлы лежат в разных папках по адресам:
C:\xampp\htdocs\dlya_foruma\view - файл registration.php;
C:\xampp\htdocs\dlya_foruma\component - файл comp_check_symbol.php.
Первый файл - непосредственно регистрационная форма с проверками:
- заполненности поля;
- длины строки;
- наличия допустимых/недопустимых символов (реализовано через второй файл).
Какой функционал задействован:
- сессии (здесь для сохранения данных пользователя в случае ошибки);
- регулярные выражения (для проверки наличия допустимых/недопустимых символов(второй файл));
- строковая функция (для проверки длины поля).
Оставил проверку только одного параметра, остальное идентично.
Теперь собственно коды.
"registration.php":
CODE ( htmlphp):
скопировать код в буфер обмена
<?php $_SESSION[user_login] = $_POST[user_login]; $log_check_in = $_POST[registration]; ?> <html> <head> <title>Регистрация</title> <head> <body> <h2><center>Регистрация</center></h2> <form method='post' name='reg_user' action='registration.php'> <table border='1'> <!--Поля логина--> <tr> <td> Логин </td> <td> <input type='text' name='user_login' value='<?php echo"$_SESSION[user_login]"; ?>' size='10'> </td> <td> <!--Место для скрипта проверки и вывода результата--> <?php if ($log_check_in == 'Зарегистрироваться') { require_once ('C:/xampp/htdocs/dlya_foruma/component/comp_check_symbol.php'); if (!empty ($_SESSION[user_login])) { if (check_symbol ($_SESSION[user_login])) if (strlen ($_SESSION[user_login])<=10) echo "Верный формат логина"; else echo "Слишком длинный логин. Максимальная длинна 10 символов"; else echo "В логине есть недопустимые символы"; } else echo "Логин пустой"; } else echo "Максимальная длина 10 символов"; ?> </td> </tr> </table> <input type='submit' name='registration' value='Зарегистрироваться'> </form> </body> </html>
Второй файл, "comp_check_symbol.php":
Поставил это в уроках, т.к. сам в своё время долго мучался над организацией этого вопроса. Хотя не уверен, что сделал всё правильно. Но "разбор полётов" - это тоже учёба. Буду благодарен, если кто-нибудь скажет своё аргументированное мнение о моей работе. А если еще приведет примеры, как лучше - будет просто замечательно. И остальным интересно.
|