X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> PHP обработчик формы обратной связи checkbox
a-a-u@mail.ru
a-a-u@mail.ru
Topic Starter сообщение 30.7.2014, 15:13; Ответить: a-a-u@mail.ru
Сообщение #1


Добрый день !

Подскажите как реализовать обработку форму обратной связи для checkbox.

Сейчас она работает, но не обрабатывается чекбокс: http://alevavit.ru/%D0%BF%D0%BE%D0%B4%D0%B...B0%D1%82%D1%8C/

Форма в разделе участвовать.

Мой код:
[PHP]session_start();

//error_reporting(E_ALL);
//ini_set('display_errors', 'On');

require_once 'validator.php';

$validator = new Validator();

$validator->set_error_delimiters('<div class="error">', '</div>');

//Задаем правила валидации
$rules = array(
array(
'field' => 'user_name',
'label' => 'Имя',
'rules' => array(
'trim' => '', //Обрезаем пробелы по бокам
'strip_tags' => '', // Удаляем HTML и PHP теги
'required' => 'Поле %s обязательно для заполнения'
)
),
array(
'field' => 'user_lastname',
'label' => 'Фамилия',
'rules' => array(
'trim' => '', //Обрезаем пробелы по бокам
'strip_tags' => '', // Удаляем HTML и PHP теги
'required' => 'Поле %s обязательно для заполнения'
)
),
array(
'field' => 'user_country',
'label' => 'Страна',
'rules' => array(
'trim' => '', //Обрезаем пробелы по бокам
'strip_tags' => '', // Удаляем HTML и PHP теги
'required' => 'Поле %s обязательно для заполнения'
)
),
array(
'field' => 'user_sity',
'label' => 'Город',
'rules' => array(
'trim' => '', //Обрезаем пробелы по бокам
'strip_tags' => '', // Удаляем HTML и PHP теги
'required' => 'Поле %s обязательно для заполнения'
)
),
array(
'field' => 'user_email',
'label' => 'E-mail',
'rules' => array(
'trim' => '',
'required' => 'Поле %s обязательно для заполнения',
'valid_email' => 'Поле %s должно содержать правильный email-адрес'
)
),
array(
'field' => 'user_phone',
'label' => 'Телефон',
'rules' => array(
'trim' => '', //Обрезаем пробелы по бокам
'strip_tags' => '', // Удаляем HTML и PHP теги
'required' => 'Поле %s обязательно для заполнения'
)
),
array(
'field' => 'skype',
'label' => 'Skype',
'rules' => array(
'trim' => '', //Обрезаем пробелы по бокам
'strip_tags' => '', // Удаляем HTML и PHP теги
)
),
array(
'field' => 'text_about',
'label' => 'Расскажите о себе',
'rules' => array(
'trim' => '', //Обрезаем пробелы по бокам
'strip_tags' => '', // Удаляем HTML и PHP теги
'required' => 'Поле %s обязательно для заполнения'
)
),
array(
'field' => 'text_help',
'label' => 'Как вы видите своё участие',
'rules' => array(
'trim' => '', //Обрезаем пробелы по бокам
'strip_tags' => '', // Удаляем HTML и PHP теги
'required' => 'Поле %s обязательно для заполнения'
)
),
array(
'field' => 'keystring',
'label' => 'Капча',
'rules' => array(
'trim' => '', //Обрезаем пробелы по бокам
'required' => 'Вы не ввели цифры изображенные на картинке',
'valid_captcha[keystring]' => 'Вы ввели не правильный код с картинки с цифрами'
)
)
);

//Устанавливаем правила валидации
$validator->set_rules($rules);
$message = '';

//Запускаем валидацию POST данных
if($validator->run()){

//Здесь впишите свой e-mail адрес
//на негу будут приходить уведомления с формы
$to = 'a-a-u@mail.ru';

$from = "=?UTF-8?b?" . base64_encode($validator->postdata('user_name')) . "?=";
$subject = "Участник проектов" . base64_encode( $validator->postdata('subject') ) . "?=";

$mail_body = "Сообщение с сайта Alevavit.ru.\r\nДанные участника:\r\n";

//Формируем текст сообщения
foreach($rules as $rule){
if($rule['field'] == 'keystring') continue;
$mail_body .= $rule['label'].': '.$validator->postdata($rule['field'])."\r\n";
}

$header = "MIME-Version: 1.0\n";
$header .= "Content-Type: text/plain; charset=UTF-8\n";
$header .= "From: ". $from . " <" . $validator->postdata('user_email'). ">";

//Отправка сообщения
if(mail($to, $subject, $mail_body, $header)){

$message = '<div class="error">Ваше сообщение успешно отправлено!</div>';

//Очищаем форму обратной связи
$validator->reset_postdata();
}
else{

$message = '<div class="error">Ваше сообщение не отправлено!</div>';
}
}
else{

//Получаем сообщения об ошибках в виде строки
$message = $validator->get_string_errors();

//Получаем сообщения об ошибках в виде массива
$errors = $validator->get_array_errors();

}
[/PHP]

Сама форма:
<form action="" method="post" id="mail">
<div class="form">
<table cellspacing="15px" width="500px" style="margin-left:-10px;">
<tr><td valign="top" width='150px'>
<label>Имя<span class="star">*</span></label></td>
<td <?=(!empty($errors['user_name']))? 'class="error_field"': '';?>><input type="text" class = "text" name="user_name" value="<?=$validator->postdata('user_name');?>" /></td></tr>
<tr><td valign="top">
<label>Фамилия<span class="star">*</span></label></td>
<td <?=(!empty($errors['user_lastname']))? 'class="error_field"': '';?>><input type="text" class = "text" name="user_lastname" value="<?=$validator->postdata('user_lastname');?>" /></td></tr>
<tr><td valign="top"><label>Страна<span class="star">*</span></label></td>
<td <?=(!empty($errors['user_country']))? 'class="error_field"': '';?>><input type="text" class = "text" name="user_country" value="<?=$validator->postdata('user_country');?>" /></td></tr>
<tr><td valign="top"><label>Город<span class="star">*</span></label></td>
<td <?=(!empty($errors['user_sity']))? 'class="error_field"': '';?>><input type="text" class = "text" name="user_sity" value="<?=$validator->postdata('user_sity');?>" /></td></tr>
<tr><td valign="top"><label>E-mail<span class="star">*</span></label></td>
<td <?=(!empty($errors['user_email']))? 'class="error_field"': '';?>><input type="text" class = "text" name="user_email" value="<?=$validator->postdata('user_email');?>"/></td></tr>
<tr><td valign="top"><label>Телефон<span class="star">*</span></label></td>
<td <?=(!empty($errors['user_phone']))? 'class="error_field"': '';?>><input type="text" class = "text" name="user_phone" value="<?=$validator->postdata('user_phone');?>" /></td></tr>
<tr><td valign="top"><label>Skype</label></td>
<td <?=(!empty($errors['skype']))? 'class="error_field"': '';?>><input type="text" class = "text" name="skype" value="<?=$validator->postdata('skype');?>"></td></tr>
<tr><td valign="top">Выберите проект<span class="star">*</span></td>
<td>
<label><input type="checkbox" name="project1" value="<?=$validator->postdata('project1');?>"><span>Сайт и программа «Алевавит»</span><br>
<label><input type="checkbox" name="project2" value="<?=$validator->postdata('project2');?>"><span>Грамота для детей и взрослых</span><br>
<label><input type="checkbox" name="project3" value="<?=$validator->postdata('project3');?>"><span>Лавка Чудес</span><br>
<label><input type="checkbox" name="project4" value="<?=$validator->postdata('project4');?>"><span>Фильм «Ключ Мир(мiр)оздания»</span><br>
<label><input type="checkbox" name="project5" value="<?=$validator->postdata('project5');?>"><span>Алеваград</span><br>
<label><input type="checkbox" name="project6" value="<?=$validator->postdata('project6');?>"><span>Метафизика Животворения</span><br>
<label><input type="checkbox" name="project7" value="<?=$validator->postdata('project7');?>"><span>Книга Алева и Тау</span><br>
<label><input type="checkbox" name="project8" value="<?=$validator->postdata('project8');?>"><span>1234 Светоносца</span><br>
</td></tr>

<tr><td valign="top"><label>Расскажите о себе<span class="star">*</span></label></td>
<td <?=(!empty($errors['text_about']))? 'class="error_field"': '';?>><textarea class="text" name="text_about" value="<?=$validator->postdata('text_about');?>" cols="34" rows="7"></textarea></td></tr>
<tr><td valign="top"><label>Как вы видите своё участие<span class="star">*</span></label></td>
<td <?=(!empty($errors['text_help']))? 'class="error_field"': '';?>><textarea class="text" name="text_help" value="<?=$validator->postdata('text_help');?>" cols="34" rows="7" ></textarea></td></tr>
<tr><td valign="top" <?=(!empty($errors['keystring']))? 'class="error_field"': '';?>>
<label class="captcha">Введите цифры изображенные на картинке:</label></td>
<td class="capth_images"><?php require 'captcha.php';?>
<input type="text" style="position:relative; top:-5px;" class = "text" name="keystring" value=""/></td></tr>
<tr><td valign="top"></td>
<td align="right"><input type="submit" value="Отправить" /></td></tr>
</table>
</div>
</form>
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Rinsei
Rinsei
сообщение 5.8.2014, 19:39; Ответить: Rinsei
Сообщение #2


Для удобства присвой чекбоксам имена не project1, project2, а project[], тогда ты передашь не 8 $_POST параметров, а один массив $_POST['project'][], который можно перебрать например через foreach($_POST['project'] as $projects) {//поочереди перебираем все чекбоксы} или for($i=0; $i<count($_POST['project']); $i++) {//здесь у нас еще и порядковый номер чекбокса будет $_POST['project'][$i]}

Единственное не забудь, что нумерация чекбоксов будет идти с 0

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) СОЗДАНИЕ : / САЙтЫ / ЛЕНДЫ / БОТЫ ТГ / ВАЙТЫ / КРЕО / СОФТЫ / ДИЗАЙН [PHP, JS, HTML/CSS] и другое
5 CULA 3295 19.12.2023, 18:55
автор: CULA
Открытая тема (нет новых ответов) Услуги по созданию и доработке скриптов PHP, MySQL, JavaScript, jQuery
Разработка сайтов и сервисов под-ключ
0 alexey 1174 24.11.2023, 14:46
автор: alexey
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыВеб-разработка (HTML5, CSS3, JavaScript, jQuery, Ajax, PHP)
56 qpPeW 44777 19.7.2023, 10:03
автор: qpPeW
Открытая тема (нет новых ответов) Есть спецы по php/laravel?
3 Mixatraider 1856 26.5.2023, 20:48
автор: Mixatraider
Открытая тема (нет новых ответов) Опытный PHP\Python разработчик в поиске интересных задач
6 daikzlex 3362 25.5.2023, 13:55
автор: daikzlex


 



RSS Текстовая версия Сейчас: 29.3.2024, 18:48
Дизайн