Пытаюсь научится php. Памагите Задача заключается в создании веб-страницы с 2 полями и кнопкой. Табличка состоит из столбцов - Имя, Телефон. Вопрос 1. Нажимая кнопку происходит сохранение информации из текстовых полей в таблицу БД. Так же должна быть проверка заполнения полей (на столбцах таблицы есть ограничение not null) при нажатии кнопки. Как это реализовать? Вопрос 2. Поле ввода номера телефона должно предусматривать проверку корректности номера с помощью рег. выражений на стороне сервера (например ^((8|+7)[- ]?)?((?\d{3})?[- ]?)?[\d- ]{7,10}$). В случае ввода некорректного номера - выводится сообщение об ошибке с примерами правильного заполнения. Не понимаю как должна выглядеть функция. На данный момент имеется: форма ввода forma.html HTML: <!DOCTYPE html> <html> <head> <metacharset="utf-8"> <title>Форма ввода</title> </head> <body> <formaction="action.php"method="post"enctype="multipart/form-data"> Ваше имя: <inputtype="text"name="name"/><br/> Ваш телефон: <inputtype="text"name="phone"/><br/> <inputtype="submit"value="Отправить форму"/> </form> </body> </html> Код обработчика: Файл action.php PHP: $name=$_POST['name']; $phone=$_POST['phone']; //соединение с базой $db = new PDO('mysql:dbname=db_name; host=localhost',"user_name","user_password"); //далее сам запрос $sql="insert into `table_name` (name,phone) values (:name, :phone)"; $sth=$db->prepare($sql); $sth->bindValue(':name', $name); $sth->bindValue(':phone', $phone); $sth->execute();
Прямо, как написано. На клиенте или на сервере. Если на сервере, то перед записью при непрохождении проверки редирект на страницу с сообщением (или индикация ошибки и отдача сообщения в случае использования AJAX). Почти так же, как я написал в пред. предложении.
Нету примера. Делайте по условию редирект на страницу с формой, добавив к адресу, например, ?error=1, а на странице с формой при наличии этого модификатора выводите сообщение. При некорректности значения хотя бы одного поля все данные можно терять – пусть пользователь все вводит повторно.
Алгоритм такой: 1. Проверяете пустой ли глобальный массив $_POST (т.е. данные в принципе к нам отправлены или нет) 2. Проверяете валидны ли переданные данные (непустые, номер телефона в правильном формате) - если нет, то делаете перенаправление на форму с GET-параметрами, которые будут указывать, в каких полях ошибки - если все поля валидны, производите вставку записи в таблицу БД, и выводите сообщение, что все ок.
PHP: $name=$_POST['name']; $phone=$_POST['phone']; $submit = $_POST['submit']; if (isset($submit)){ // проверка if (preg_match('/^((8|+7)[- ]?)?((?\d{3})?[- ]?)?[\d- ]{7,10}$/', $phone)){ echo 'Ошибка'; } else{ // идем дальше } }