Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/40: Рейтинг темы: голосов - 40, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 15.06.2014
Сообщений: 9

Нужно отправить данные CheckBox-а (галочки которые выбрал человек) на email

15.06.2014, 14:48. Показов 8447. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!

Ребята, помогите пожалуйста. Уже все перерыл. Понимаю. что просто но не работает!

Проблема такая. Нужно отправить данные чекбокса (галочки которые выброл человек) на емэйл. С тегом radio получилось а вот с галками...Либо последний выбор приходит, либо ничего!
Вот php с обработчиком post:
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
$pattern = "#^[a-z0-9_-]+@[a-z0-9_-]+\.([a-z0-9]{1,6}\.)?[a-z]{2,6}$#i";
 
if($_POST){
    $error = false;
 
    foreach ($_POST as $key => $value) {
        $value = trim($value);
        if(array_key_exists($key, $fields) && empty($value)){
            $_SESSION['res']['error'] .= "Вы не заполнили поле {$fields[$key]} <br />";
            $error = true;
        }
    }
 
    if(!empty($_POST['email'])){
        if(!preg_match($pattern, $_POST['email'])){
            $_SESSION['res']['error'] .= "Поле email не соответствует формату <br />";
            $error = true;
        }
    }
    
    if($_POST['captcha'] != $_SESSION['res_captcha']){
        $_SESSION['res']['error'] .= "Дан неверный ответ на вопрос <br />";
        $error = true;
    }
 
    if($_POST['confirm'] != 'on'){
        $_SESSION['res']['error'] .= "Вы не подтвердили согласие на публикацию!";
        $error = true;
    }
 
 
    if($error){
        foreach ($_POST as $key => $value) {
            $_SESSION['res'][$key] = trim($value);
        }
    }else{
        foreach ($_POST as $key => $value) {
            if(!array_key_exists($key, $all_fields)) continue;
            $value = trim($value);
            if(empty($value)) $value = "Поле не заполнено";
            $body .= "{$all_fields[$key]}: \r\n{$value}\r\n\r\n";
        }
 
 
 
        $to = "admin@gmail.com";
        $subject = "Заполнена форма на сайте";
        $headers = "FROM: " .strtoupper($_SERVER['SERVER_NAME']). "<>\r\n";
        $headers .= "Content-type:text/plain; charset=utf-8";
        if(mail($to, $subject, $body, $headers)){
            $_SESSION['res']['ok'] = "Спасибо, Ваш отзыв принят.";
        }else{
            $_SESSION['res']['error'] .= "Ошибка при отправке письма!";
        }       
    }
 
    header("Location: {$_SERVER['PHP_SELF']}");
    exit;
}
 
$a = mt_rand(1, 10);
$b = mt_rand(1, 10);
$_SESSION['res_captcha'] = $a + $b;
И html
HTML5
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
<p> 
 
<fieldset id="shest" style="width: 200px;">
<legend><input type="checkbox"> Всё</legend>
<input type="checkbox" name="food" value="Завтрак" checked >Завтрак
<input type="checkbox" name="food" value="Обед" >Обед
<input type="checkbox" name="food" value="Ужин" >Ужин
</fieldset>
 
<script>
var main = document.querySelector('#shest legend [type="checkbox"]'),
    all = document.querySelectorAll('#shest > [type="checkbox"]');
 
for(var i=0; i<all.length; i++) {  // 1 и 2 пункт задачи
    all[i].onclick = function() {
        var allChecked = document.querySelectorAll('#shest > [type="checkbox"]:checked').length;
        main.checked = allChecked == all.length;
        main.indeterminate = allChecked > 0 && allChecked < all.length;
    }
}
 
main.onclick = function() {  // 3
    for(var i=0; i<all.length; i++) {
        all[i].checked = this.checked;
 
    }
}
</script>
        </p>
На скрипт не смотрите - это чтобы сразу всё выбрать(рабочий)

Спасибо!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.06.2014, 14:48
Ответы с готовыми решениями:

Фильтровать те данные, которые выбрал пользователь
У меня есть форма, которая посылает данные, проблема в одном в переменной str, там с помощью &amp; данные идут только по порядку, но...

Отправить данные с формы на email
Приветствую всех. Есть форма. С неё нужно отправить данные. Пробовал с функцией mail(); на денвере. Она не работала. Есть ли что то ещё ?...

Нужно из програмы на VB отправить email с вложенными файлами
Нужно из програмы на VB отправить email с вложенными файлами. Желательно не используя MS Winsock Control. Несколько месяцев назад я уже...

10
Не мoдepaтор
 Аватар для MVS76
340 / 315 / 94
Регистрация: 07.07.2012
Сообщений: 1,040
Записей в блоге: 7
15.06.2014, 14:57
Цитата Сообщение от loganleito Посмотреть сообщение
<input type="checkbox" name="food" value="Завтрак" checked >Завтрак
<input type="checkbox" name="food" value="Обед" >Обед
<input type="checkbox" name="food" value="Ужин" >Ужин
Нужно отправлять массивом, и на стороне сервера обрабатывать.
Код отправки массива
HTML5
1
2
3
<input type="checkbox" name="food[]" value="Завтрак" checked >Завтрак
<input type="checkbox" name="food[]" value="Обед" >Обед
<input type="checkbox" name="food[]" value="Ужин" >Ужин
Или задавать разный "name"

Если есть желание, можете заглянуть сюда, здесь уже все реализовать на аяксе
0
0 / 0 / 0
Регистрация: 15.06.2014
Сообщений: 9
15.06.2014, 17:05  [ТС]
MVS76, Если поставить разные имена, то значение не присылается.
А если поставить скобки после имени, то остаётся тоже самое. Выбирается один пункт из чекбокса (последний)
Миниатюры
Нужно отправить данные CheckBox-а (галочки которые выбрал человек) на email   Нужно отправить данные CheckBox-а (галочки которые выбрал человек) на email  
0
Не мoдepaтор
 Аватар для MVS76
340 / 315 / 94
Регистрация: 07.07.2012
Сообщений: 1,040
Записей в блоге: 7
15.06.2014, 17:12
Вы не в правильном месте указали скобки
Квадратные скобки []- это признак массива. Циклическая обработка массива осуществляется так
0
0 / 0 / 0
Регистрация: 15.06.2014
Сообщений: 9
15.06.2014, 17:57  [ТС]
MVS76, Прочитал мануал,спасибо!

Но проблема-то немного в другом) Присылаются то присылаются
Но нам нужно,чтобы присылалось в одном имени.
Пример радио:
HTML5
1
2
3
<input type="radio" name="concert" class="short" id="concert" value="1 концерт" checked >1 концерт
            <input type="radio" name="concert" class="short" id="concert2" value="2 концерта" >2 концерта
            <input type="radio" name="concert" class="short" id="concert3" value="3 концерта" >3 концерта
Главное,чтобы значения были привязаны к заголовку одному, как это делает радио!



Добавлено через 2 минуты
Вот что получилось после мануала!
PHP
1
2
3
if (isset($_POST['checkbox1'])) echo "<p><b>Первый</b></p>";
             if (isset($_POST['checkbox2'])) echo "<p><b>Второй</b></p>";
             if (isset($_POST['checkbox3'])) echo "<p><b>Третий</b></p>";
HTML5
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
<p> 
 
<fieldset id="shest" style="width: 200px;">
<legend><input type="checkbox"> Всё</legend>
<input type="checkbox" name="checkbox1" value="1" checked >Завтрак
<input type="checkbox" name="checkbox2" value="1" >Обед
<input type="checkbox" name="checkbox3" value="1" >Ужин
</fieldset>
 
<script>
var main = document.querySelector('#shest legend [type="checkbox"]'),
    all = document.querySelectorAll('#shest > [type="checkbox"]');
 
for(var i=0; i<all.length; i++) {  // 1 и 2 пункт задачи
    all[i].onclick = function() {
        var allChecked = document.querySelectorAll('#shest > [type="checkbox"]:checked').length;
        main.checked = allChecked == all.length;
        main.indeterminate = allChecked > 0 && allChecked < all.length;
    }
}
 
main.onclick = function() {  // 3
    for(var i=0; i<all.length; i++) {
        all[i].checked = this.checked;
 
    }
}
</script>
0
Не мoдepaтор
 Аватар для MVS76
340 / 315 / 94
Регистрация: 07.07.2012
Сообщений: 1,040
Записей в блоге: 7
15.06.2014, 17:58
Ну так оно и будет присылать в одном заголовке, если указан один "name" но массивом "name[]"
Нужно только на стороне сервера извлечь данные через "foreach"
0
0 / 0 / 0
Регистрация: 15.06.2014
Сообщений: 9
15.06.2014, 18:03  [ТС]
MVS76, Вот что получилось после мануала!
PHP
1
2
3
if (isset($_POST['checkbox1'])) echo "<p><b>Первый</b></p>";
             if (isset($_POST['checkbox2'])) echo "<p><b>Второй</b></p>";
             if (isset($_POST['checkbox3'])) echo "<p><b>Третий</b></p>";
HTML5
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
<p> 
 
<fieldset id="shest" style="width: 200px;">
<legend><input type="checkbox"> Всё</legend>
<input type="checkbox" name="checkbox1" value="1" checked >Завтрак
<input type="checkbox" name="checkbox2" value="1" >Обед
<input type="checkbox" name="checkbox3" value="1" >Ужин
</fieldset>
 
<script>
var main = document.querySelector('#shest legend [type="checkbox"]'),
    all = document.querySelectorAll('#shest > [type="checkbox"]');
 
for(var i=0; i<all.length; i++) {  // 1 и 2 пункт задачи
    all[i].onclick = function() {
        var allChecked = document.querySelectorAll('#shest > [type="checkbox"]:checked').length;
        main.checked = allChecked == all.length;
        main.indeterminate = allChecked > 0 && allChecked < all.length;
    }
}
 
main.onclick = function() {  // 3
    for(var i=0; i<all.length; i++) {
        all[i].checked = this.checked;
 
    }
}
</script>
Добавлено через 54 секунды
MVS76,
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
$fields = array("lastname" => "Название хора (как должно звучать со сцены и вдипломе)", "firstname" => "Дирижер хора (Ф.И.О., включая звания, если есть)", "middlename" => "Хормейстер (Ф.И.О., включая звания)", "email" => "Email", "comment" => "КОММЕНТАРИИ,  ВОПРОСЫ К ОРГАНИЗАТОРАМ");
$all_fields = array("lastname" => "Название хора (как должно звучать со сцены и вдипломе)",
                    "firstname" => "Дирижер хора (Ф.И.О., включая звания, если есть)",
                    "middlename" => "Хормейстер (Ф.И.О., включая звания)",                    
                    "emailAlt" => "Концертмейстер (Ф.И.О., включая звания)",
                    
 
                    ///
 
                    "country" => "Страна",
                    "city" => "Город", 
                    "index" => "Индекс",
                    "address" => "Почтовый адрес",
                    "text" => "Контактное лицо",
                    "email" => "Email",
                    "phone" => "Телефон для связи",
                    "skype" => "Skype (желательно)",
                    "fax" => "Факс (с кодом города)",
                    "web" => "Web-сайт хора",
                    "category" => "Категория",
                    "option" => "Проживание",
                    "transportation" =>  "Вид транспорта",
                    "concert" => "Мы хотим принять участие",
                    "tour" => "Мы хотим заказать экскурсию",
 
                    "checkbox1" => "Завтрак",
                    "checkbox2" => "Обед",
                    "checkbox3" => "Ужин",
 
                    "with_date" => "Дата прибытия с",
                    "by_date" => "Дата прибытия по",
                    "with_date1" => "Дата оправления с",
                    "by_date1" => "Дата оправления по",
                    "singers" => "Певцов",
                    "accompanying" => "Сопровождающих",
                    "only" => "Всего",
                    "vehicle" => "Тест",
 
 
                    
 
    
 
    
 
 
 
                    ///
                    "speech" => "ОБЯЗАТЕЛЬНОЕ ПРОИЗВЕДЕНИЕ",
                    "repertoire" => "Исполняемый репертуар с указанием хронометража каждого произведения",
                    "tool" => "Нужен ли инструмент для выступления",
 
                    ///
 
                    "comment" => "КОММЕНТАРИИ,  ВОПРОСЫ К ОРГАНИЗАТОРАМ");
Добавлено через 36 секунд
MVS76, Вот сейчас не понял про сервер!))))
Я денвером пробую. тот же самый сервер

Добавлено через 1 минуту
Или вот post тоже с командой "foreach"
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
if($_POST){
    $error = false;
 
    foreach ($_POST as $key => $value) {
        $value = trim($value);
        if(array_key_exists($key, $fields) && empty($value)){
            $_SESSION['res']['error'] .= "Вы не заполнили поле {$fields[$key]} <br />";
            $error = true;
        }
    }
 
             
 
    if(!empty($_POST['email'])){
        if(!preg_match($pattern, $_POST['email'])){
            $_SESSION['res']['error'] .= "Поле email не соответствует формату <br />";
            $error = true;
        }
    }
    
    if($_POST['captcha'] != $_SESSION['res_captcha']){
        $_SESSION['res']['error'] .= "Дан неверный ответ на вопрос <br />";
        $error = true;
    }
 
    if($_POST['confirm'] != 'on'){
        $_SESSION['res']['error'] .= "Вы не подтвердили согласие на публикацию!";
        $error = true;
    }
 
 
    if($error){
        foreach ($_POST as $key => $value) {
            $_SESSION['res'][$key] = trim($value);
        }
    }else{
        foreach ($_POST as $key => $value) {
            if(!array_key_exists($key, $all_fields)) continue;
            $value = trim($value);
            if(empty($value)) $value = "Поле не заполнено";
            $body .= "{$all_fields[$key]}: \r\n{$value}\r\n\r\n";
        }
 
 
 
        $to = "lonshakov94@gmail.com";
        $subject = "Заполнена форма на сайте";
        $headers = "FROM: " .strtoupper($_SERVER['SERVER_NAME']). "<>\r\n";
        $headers .= "Content-type:text/plain; charset=utf-8";
        if(mail($to, $subject, $body, $headers)){
            $_SESSION['res']['ok'] = "Спасибо, Ваш отзыв принят.";
        }else{
            $_SESSION['res']['error'] .= "Ошибка при отправке письма!";
        }       
    }
 
    header("Location: {$_SERVER['PHP_SELF']}");
    exit;
}
 
$a = mt_rand(1, 10);
$b = mt_rand(1, 10);
$_SESSION['res_captcha'] = $a + $b;
 
?>
0
Не мoдepaтор
 Аватар для MVS76
340 / 315 / 94
Регистрация: 07.07.2012
Сообщений: 1,040
Записей в блоге: 7
15.06.2014, 18:16
Цитата Сообщение от loganleito Посмотреть сообщение
foreach ($_POST as $key => $value) {
$value = trim($value);
if(array_key_exists($key, $fields) && empty($value)){
$_SESSION['res']['error'] .= "Вы не заполнили поле {$fields[$key]} <br />";
$error = true;
}
}
Эту часть нужно переделать примерно так:
При приходу массива "[]", переназначить переменные, дать им другое имя, иначе проверка не сработает, Я у себя это реализовал так, ссылку вам давал, это кусок оттуда
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// проверка/валидация формы
foreach ($post as $Name => $tempValue) { // разбираем массив POST на переменные и массив
    foreach ($tempValue as $vKey => $vValue) { // получаем переменные: "name" поля input, "value" поля input, $Key = ключ для валидации с <input name="Name[0 или 1]">
    // если есть массив, идем дальше
        if(is_array($vValue)) { // если с формы пришел массив, то есть [] <input name="одинаковое[][1]"> , то включаем эту часть кода
         foreach ($vValue as $Key => $aValue) { // получаем переменные: key, value поля <input name="одинаковое[][$Key 0 или 1]" value="">
          $vValue = $aValue; // переназначаем переменную с учетом массива
            $vKey = $Key; // здесь для проверки назначаем в соответствии ключа с формы: [$Key 0,1,2,... ]
        }
      }
 
     $Value = htmlspecialchars(trim($vValue)); // преобразовуем специальные символы в HTML сущности и удаляем пробелы по бокам
    if($vKey > 0) { // если ключ 1 - проверяем форму, 0 - нет проверки, приходит с  <input name="Name[$Key 0 или 1]">
      if($Value == '') { // проверка формы на пустоту
        $errors[] = "Вы не ввели: ".$Name;
       } else if (!preg_match(${'pattern_'.$vKey} ? ${'pattern_'.$vKey} : '/(.*?)/iu', $Value)) { // если форма не пуста, валидация полей по шаблону $pattern_? '/^... $/$vKey'
          $errors[] = "Введено некорректно: ".$Name;
      }
    }
  }
}
0
0 / 0 / 0
Регистрация: 15.06.2014
Сообщений: 9
15.06.2014, 19:30  [ТС]
MVS76, Вы уж простите!
Но я только пытаюсь во всём этом разобраться!

Применил ваш совет.

И прилетаю на ошибку "Warning: Invalid argument supplied for foreach() in Z:\home\localhost\www\forma\index.php on line 66"
Вот полный пхп
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
$fields = array("lastname" => "Название хора (как должно звучать со сцены и вдипломе)", "firstname" => "Дирижер хора (Ф.И.О., включая звания, если есть)", "middlename" => "Хормейстер (Ф.И.О., включая звания)", "email" => "Email", "comment" => "КОММЕНТАРИИ,  ВОПРОСЫ К ОРГАНИЗАТОРАМ");
$all_fields = array("lastname" => "Название хора (как должно звучать со сцены и вдипломе)",
                    "firstname" => "Дирижер хора (Ф.И.О., включая звания, если есть)",
                    "middlename" => "Хормейстер (Ф.И.О., включая звания)",                    
                    "emailAlt" => "Концертмейстер (Ф.И.О., включая звания)",
                    
 
                    ///
 
                    "country" => "Страна",
                    "city" => "Город", 
                    "index" => "Индекс",
                    "address" => "Почтовый адрес",
                    "text" => "Контактное лицо",
                    "email" => "Email",
                    "phone" => "Телефон для связи",
                    "skype" => "Skype (желательно)",
                    "fax" => "Факс (с кодом города)",
                    "web" => "Web-сайт хора",
                    "category" => "Категория",
                    "option" => "Проживание",
                    "transportation" =>  "Вид транспорта",
                    "concert" => "Мы хотим принять участие",
                    "tour" => "Мы хотим заказать экскурсию",
 
                    "checkbox1" => "Завтрак",
                    "checkbox2" => "Обед",
                    "checkbox3" => "Ужин",
 
                    "with_date" => "Дата прибытия с",
                    "by_date" => "Дата прибытия по",
                    "with_date1" => "Дата оправления с",
                    "by_date1" => "Дата оправления по",
                    "singers" => "Певцов",
                    "accompanying" => "Сопровождающих",
                    "only" => "Всего",
                    "vehicle" => "Тест",
 
 
                    
 
    
 
    
 
 
 
                    ///
                    "speech" => "ОБЯЗАТЕЛЬНОЕ ПРОИЗВЕДЕНИЕ",
                    "repertoire" => "Исполняемый репертуар с указанием хронометража каждого произведения",
                    "tool" => "Нужен ли инструмент для выступления",
 
                    ///
 
                    "comment" => "КОММЕНТАРИИ,  ВОПРОСЫ К ОРГАНИЗАТОРАМ");
 
 
 
 
$pattern = "#^[a-z0-9_-]+@[a-z0-9_-]+\.([a-z0-9]{1,6}\.)?[a-z]{2,6}$#i";
 
if($_POST){
    $error = false;
 
    foreach ($_POST as $Name => $tempValue) { // разбираем массив POST на переменные и массив
    foreach ($tempValue as $vKey => $vValue) { // получаем переменные: "name" поля input, "value" поля input, $Key = ключ для валидации с <input name="Name[0 или 1]">
    // если есть массив, идем дальше
        if(is_array($vValue)) { // если с формы пришел массив, то есть [] <input name="одинаковое[][1]"> , то включаем эту часть кода
         foreach ($vValue as $Key => $aValue) { // получаем переменные: key, value поля <input name="одинаковое[][$Key 0 или 1]" value="">
          $vValue = $aValue; // переназначаем переменную с учетом массива
            $vKey = $Key; // здесь для проверки назначаем в соответствии ключа с формы: [$Key 0,1,2,... ]
        }
      }
$Value = htmlspecialchars(trim($vValue)); // преобразовуем специальные символы в HTML сущности и удаляем пробелы по бокам
    if($vKey > 0) { // если ключ 1 - проверяем форму, 0 - нет проверки, приходит с  <input name="Name[$Key 0 или 1]">
      if($Value == '') { // проверка формы на пустоту
        $errors[] = "Вы не ввели: ".$Name;
       } else if (!preg_match(${'pattern_'.$vKey} ? ${'pattern_'.$vKey} : '/(.*?)/iu', $Value)) { // если форма не пуста, валидация полей по шаблону $pattern_? '/^... $/$vKey'
          $errors[] = "Введено некорректно: ".$Name;
      }
    }
  }
}       
 
    if(!empty($_POST['email'])){
        if(!preg_match($pattern, $_POST['email'])){
            $_SESSION['res']['error'] .= "Поле email не соответствует формату <br />";
            $error = true;
        }
    }
    
    if($_POST['captcha'] != $_SESSION['res_captcha']){
        $_SESSION['res']['error'] .= "Дан неверный ответ на вопрос <br />";
        $error = true;
    }
 
    if($_POST['confirm'] != 'on'){
        $_SESSION['res']['error'] .= "Вы не подтвердили согласие на публикацию!";
        $error = true;
    }
 
 
    if($error){
        foreach ($_POST as $key => $value) {
            $_SESSION['res'][$key] = trim($value);
        }
    }else{
        foreach ($_POST as $key => $value) {
            if(!array_key_exists($key, $all_fields)) continue;
            $value = trim($value);
            if(empty($value)) $value = "Поле не заполнено";
            $body .= "{$all_fields[$key]}: \r\n{$value}\r\n\r\n";
        }
 
 
 
        $to = "lonshakov94@gmail.com";
        $subject = "Заполнена форма на сайте";
        $headers = "FROM: " .strtoupper($_SERVER['SERVER_NAME']). "<>\r\n";
        $headers .= "Content-type:text/plain; charset=utf-8";
        if(mail($to, $subject, $body, $headers)){
            $_SESSION['res']['ok'] = "Спасибо, Ваш отзыв принят.";
        }else{
            $_SESSION['res']['error'] .= "Ошибка при отправке письма!";
        }       
    }
 
    header("Location: {$_SERVER['PHP_SELF']}");
    exit;
}
 
$a = mt_rand(1, 10);
$b = mt_rand(1, 10);
$_SESSION['res_captcha'] = $a + $b;
 
?>
Добавлено через 1 минуту
MVS76, Кстати, делал скрипт,чтоб не писать в пхп
JavaScript
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
$(document).ready(function(){
    var fields = ["lastname", "firstname", "middlename", "email", "comment", "captcha"];
    var pattern = /^[a-z0-9_-]+@[a-z0-9_-]+\.([a-z0-9]{1,6}\.)?[a-z]{2,6}$/i;
    var email = $("#email");
 
    $(".form").submit(function(){
        var error = 0; // флаг заполнения обязательных полей 
        var errorCheck = 0; // флаг подтверждения
        var err_text = "";
 
        $(".form").find(":input").each(function(){ // проходимся в цикле по всем полям формы
            for(var i = 0; i < fields.length; i++){ // проходимся по массиву обязательных полей
                if($(this).attr("name") == fields[i]){ // если проверяемое поле есть в списке обязательных
                    if( !$.trim($(this).val()) ){ // если поле не заполнено
                        $(this).addClass("formError");
                        error = 1;
                    }else{
                        // если заполнено - убираем красную рамку
                        $(this).removeClass("formError");
                    }
                }
            }
        });
 
        if(email.val() != ''){
            if(email.val().search(pattern) == -1){
                email.addClass("formError");
                error = 1;
                err_text += "Поле email не соответствует формату <br />";
            }
        }
 
        // получаем значение чекбокса
        var check = $("#confirm").prop("checked");
        if(!check){
            // если не отмечен чекбокс
            $("#confirm").next().addClass("formTextRed");
            errorCheck = 1;
        }else{
            // если чекбокс отмечен
            $("#confirm").next().removeClass("formTextRed");
        }
 
        if(error == 0 && errorCheck == 0){
            // если ошибок нет - отправляем форму
            return true;
        }else{
            // если что-то не заполнено
            if(error) err_text += "Не заполнены обязательные поля! Заполните подсвеченные поля.<br />";
            if(errorCheck) err_text += "Вы не подтвердили согласие на публикацию!<br />";
            $("#messenger").hide().fadeIn(500).html(err_text);
            return false;
        }
    });
});
0
Не мoдepaтор
 Аватар для MVS76
340 / 315 / 94
Регистрация: 07.07.2012
Сообщений: 1,040
Записей в блоге: 7
15.06.2014, 19:46
Цитата Сообщение от loganleito Посмотреть сообщение
Кстати, делал скрипт,чтоб не писать в пхп
Оно вроде и не плохо, но у некоторых идиотов отключен js в браузере, так вот ваш код и не сработает у таких д...ов.
Ошибка высвана тем, что у вас нет обязательных массивов, кусок кода показал вам как пример, и описал немного, в вашем случае, нужно его немного переделать, но смысл в том, что если есть массив, то его разбираем, а если нет - ничего не делаем
Как-то так
PHP
1
2
3
4
5
6
7
8
9
foreach ($_POST as $Name => $tempValue) { // разбираем массив POST на переменные и массив
    // если есть массив, идем дальше
        if(is_array($tempValue)) { // если с формы пришел массив, то есть [] <input name="одинаковое[]"> , то включаем эту часть кода
         foreach ($tempValue as $Key => $aValue) { // получаем переменные: key, value поля <input name="одинаковое[]" value="">
          $tempValue = $aValue; // переназначаем переменную с учетом массива
          $Name = $Key;
        }
      }
        }
0
0 / 0 / 0
Регистрация: 15.06.2014
Сообщений: 9
15.06.2014, 20:52  [ТС]
MVS76, Как нет обязательных?!
А это?
PHP
1
$fields = array("lastname" => "Название хора (как должно звучать со сцены и вдипломе)", "firstname" => "Дирижер хора (Ф.И.О., включая звания, если есть)", "middlename" => "Хормейстер (Ф.И.О., включая звания)", "email" => "Email", "comment" => "КОММЕНТАРИИ,  ВОПРОСЫ К ОРГАНИЗАТОРАМ");
Или я не правильно понимаю...

Добавлено через 39 секунд
MVS76, Переделать блин, не получается((
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.06.2014, 20:52
Помогаю со студенческими работами здесь

Отправить данные на сервер согласно текущего значения checkbox
Доброго времени суток! Подскажите каким способом мне узнать стоит ли галочка на checkbox или нет

Проверка галочки checkbox
Всем привет! Нужен не большой скрипт. Если галочка не стоит, то выходит первое действие, если пользователь поставил галочку то сразу же...

Сбрасываются галочки с Checkbox
Здравствуйте. Я написала такой кодик для того что бы можно было выбирать записи (Checkbox) в GridView и записывать их id (выбранных...

Изменение цвета галочки в CheckBox
Всем здравствуйте! Можно ли как-нибудь изменить цвет галочки в компоненте CheckBox, если да - то как? А если нет, то чем можно заменить...

Checkbox, картинка вместо галочки
Добрый вечер, столкнулся с такой проблемой, нужно вместо галочки в чекбоксе сделать чтобы отображалась картинка.. Делаю по этой статье...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru