Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
6 / 3 / 0
Регистрация: 25.06.2012
Сообщений: 132
1

Обработчик формы

29.11.2013, 17:11. Показов 768. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть форма contact_form.php:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Форма</title>
<link href="styles.css" rel="stylesheet" type="text/css">
</head>
<body>
 
<form action="rus_ob.php" method="post">
 
<table width="690" border="0">
  <tr>
    <td><p>Имя:</p> 
</td>
    <td><p><input name="firstname" type="text" size="27"></p></td>
  </tr>
  <tr>
    <td><p>Фамилия:</p></td>
    <td><p><input name="secondname" type="text" size="27"></p></td>
  </tr>
  <tr>
    <td><p>Отчество:</p></td>
    <td><p><input name="lastname" type="text" size="27"></p></td>
  </tr>
  <tr>
    <td><p>Возраст:</p></td>
    <td><p><input name="age" type="text" size="27"></p></td>
  </tr>
    <tr>
    <td><p>Образование:</p></td>
    <td><p><input name="education" type="text" size="27"></p></td>
  </tr>
  <tr>
    <td><p>Вероисповедание:</p></td>
    <td><p><input name="confession" type="text" size="27"></p></td>
  </tr>
    <tr>
    <td><p>E-mail:</p></td>
    <td><p><input name="email" type="text" size="27"></p></td>
  </tr>
  <tr>
    <td><p>Телефон:</p></td>
    <td><p><input name="tel" type="text" size="27"></p></td>
  </tr>
  <tr>
    <td><p>Пароль (только буквы и цифры):</p></td>
    <td><p><input name="password" type="password" size="27"></p></td>
  </tr>
  <tr>
    <td><p>Аватар:</p></td>
    <td><p><input name="file" type="file"> <input name="button2" type="button" value="Загрузить"></p></td>
  </tr>
</table>
 
  
 
  <p><input name="button3" type="submit" value="Зарегистрироваться"></p>
 
</form>
 
 
</body>
</html>
Есть пока разрабатываемый мною обработчик rus_ob.php

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
<?php
 
include ("bd.php");
 
if(isset($_POST['firstname'])) {$firstname = $_POST['firstname'];}
if(isset($_POST['secondname'])) {$secondname = $_POST['secondname'];}
if(isset($_POST['lastname'])) {$lastname = $_POST['lastname'];}
if(isset($_POST['age'])) {$age = $_POST['age'];}
if(isset($_POST['education'])) {$education = $_POST['education'];}
if(isset($_POST['confession'])) {$confession = $_POST['confession'];}
if(isset($_POST['email'])) {$email = $_POST['email'];}
if(isset($_POST['tel'])) {$tel = $_POST['tel'];}
if(isset($_POST['password'])) {$password = $_POST['password'];}
 
?>
 
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Обработчик rus</title>
<link href="styles.css" rel="stylesheet" type="text/css">
</head>
<body>
 
<?php
 
    $submited = false;
 
    $errors = array();
 
    if (isset($_POST['submit']) && !empty($_POST['submit'])) {
 
        $submited  = true;
 
        if ($firstname == '') { 
 
            $errors[] = 'Вы не ввели Ваше Имя!';
        }
 
        else if (!preg_match('/^[A-Za-z0-9 ]{3,20}$/i', $firstname)) {
 
            $errors[] = 'Вы ввели некорректное Имя!'; 
 
        }
 
        if ($secondname == '') { 
 
            $errors[] = 'Вы не ввели Вашу Фамилию!'; 
 
        }
 
        else if (!preg_match('/^[A-Za-z0-9 ]{3,20}$/i', $secondname)) {
 
            $errors[] = 'Вы ввели некорректную Фамилию!'; 
 
        }
        if ($lastname == '') { 
 
            $errors[] = 'Вы не ввели Ваше Отчество!'; 
 
        }
 
        else if (!preg_match('/^[A-Za-z0-9 ]{3,20}$/i', $lastname)) {
 
            $errors[] = 'Вы ввели некорректное Отчество!'; 
 
        }
        if ($age == '') { 
 
            $errors[] = 'Вы не ввели Ваш Возраст!'; 
 
        }
 
        else if (!preg_match('/^[0-9 ]{2}$/', $age)) {
 
            $errors[] = 'Вы ввели некорректный Возраст!'; 
 
        }
            
         if ($education == '') { 
 
            $errors[] = 'Вы не ввели Ваше Образование!'; 
 
        }
 
        else if (!preg_match('/^[A-Za-z-]{3,40}$/i', $education)) {
 
            $errors[] = 'Вы ввели некорректное Образование!'; 
 
        }
        
         if ($confession == '') { 
 
            $errors[] = 'Вы не ввели Ваше Вероисповедание!'; 
 
        }
 
        else if (!preg_match('/^[A-Za-z-]{3,20}$/i', $confession)) {
 
            $errors[] = 'Вы ввели некорректное Вероисповедание!'; 
 
        }
        
        if ($email == '') { 
 
            $errors[] = 'Вы не ввели Ваш E-mail!'; 
 
        }
 
        else if (!preg_match("/^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.([a-zA-Z]{2,4})$/i", $email)) { 
 
            $errors[] = 'Вы ввели некорректный E-mail!';
            
        }
 
        if ($tel == '') { 
 
            $errors[] = 'Вы не ввели Ваш Телефон!';
 
        }
 
        else if (!preg_match("/^(\+\d)*\s*(\(\d{3}\)\s*)*\d{3}(-{0,1}|\s{0,1})\d{2}(-{0,1}|\s{0,1})\d{2}$/i", $tel)) { 
 
            $errors[] = 'Вы ввели некорректный Телефон!';
            
        }
        if ($password == '') { 
 
            $errors[] = 'Вы не ввели Ваш Пароль!'; 
 
        }
 
        else if (!preg_match('/^[A-Za-z0-9 ]{3,20}$/i', $firstname)) {
 
            $errors[] = 'Вы ввели некорректный Пароль!'; 
 
        }
 
 
        if (empty($errors)) {
 
            $errors[] = 'Спасибо! Форма успешно отправлена!!!';
 
        }
 
    }
 
    if (!$submited) {
 
        $errors[] = 'Форма не была отправлена!'; 
 
    }
 
?>
 
<?php
 
$result = mysql_query("INSERT INTO formdata (firstname,secondname,lastname,age,education,confession,email,tel,password) VALUES ('$firstname', '$secondname','$lastname','$age','$education','$confession','$email','$tel','$password')", $db);
 
?>
 
 
</body>
</html>
В обработчике надо провести валидацию и верификацию полей и закинуть данные из формы в таблицу базы данных. После чего вывести эти данные из таблицы на странице в виде профайла. Данные в базу данных попадают, но не происходит проверка полей, просто пустая страница. Это ещё не всё, но пока что этого достаточно. Как проверить поля?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.11.2013, 17:11
Ответы с готовыми решениями:

Обработчик формы
Всем привет! Прошу помочь с обработчиком формы. Нашел какой то простенький скрипт в инете попытался...

Обработчик формы
Есть код отправки сообщения $mail = &quot;anami@satellitcom.tk&quot;; $to = &quot;.$email.&quot;; $headers =...

Обработчик формы
Доброго времени суток.У меня такой вопрос,как зделать так чтобы пользователь вводил данные в...

Обработчик формы
Помогите разобраться с обработчиком формы. Как же они достали меня( Голову сломал. Ошибки не вижу....

4
462 / 265 / 55
Регистрация: 22.08.2010
Сообщений: 1,204
Записей в блоге: 4
29.11.2013, 17:21 2
Цитата Сообщение от Tot Посмотреть сообщение
Данные в базу данных попадают, но не происходит проверка полей, просто пустая страница.
Правильно, ты же не выводишь на печать результат валидации.
0
6 / 3 / 0
Регистрация: 25.06.2012
Сообщений: 132
30.11.2013, 22:04  [ТС] 3
Вот фрагмент с выводом массива из кода выше:

PHP
1
2
3
4
5
if ($firstname == '') { 
 
            $errors[] = 'Вы не ввели Ваше Имя!';
            echo $errors[];    
        }
выводится только чистый экран. Почему не выводится массив? И стоит ли ссылку на "обратно" типа "попробовать ещё раз" ставить в КАЖДОМ элементе if, либо возможно вывесть как то более обще, абстрактнее?
0
1931 / 1522 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
01.12.2013, 02:15 4
PHP
1
echo $errors[0]
0
462 / 265 / 55
Регистрация: 22.08.2010
Сообщений: 1,204
Записей в блоге: 4
01.12.2013, 08:19 5
Цитата Сообщение от Tot Посмотреть сообщение
Вот фрагмент с выводом массива из кода выше:

PHP
1
2
3
4
5
if ($firstname == '') { 
 
            $errors[] = 'Вы не ввели Ваше Имя!';
            echo $errors[];    
        }
выводится только чистый экран. Почему не выводится массив?
Массив выводится на печать
PHP
1
print_r($errors);
А такой вариант
PHP
1
echo $errors[];
, даже при существовании в массиве значений выведет пусто. Если так
PHP
1
echo $errors;
, то увидишь слово Array
0
01.12.2013, 08:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.12.2013, 08:19
Помогаю со студенческими работами здесь

Обработчик формы
есть форма с двумя input и одним textarea и есть обработчик формы form action=&quot;mail.php&quot;...

Обработчик формы
Помогите написать обработчик, который бы считал кол-во выбранных пользователем городов и сообщал...

Обработчик формы
Есть вот такая переменная внутри которой переменная $pdf_1 $object_pdf_1 = '&lt;object...

обработчик формы
Podskajite kto znaet. v forme na html najata klavisha enter.kak v obrabotchike na php yznat ob...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru