Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
95 / 62 / 22
Регистрация: 11.03.2013
Сообщений: 608
Записей в блоге: 7

Передать значение из html формы и отправить на почту

10.11.2016, 13:36. Показов 1497. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую форумчане.
Бьюсь уже второй час не могу понять в чём ошибка.

Есть html форма с запросом POST
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
 
<form id="contact" method="post">
<div class="form-group">
<input type="text" class="form-control default"  id="name" required name="name" placeholder="Ваше имя(Вводить на английском)"><font size="1" color="grey"><b>например JamesBond</b></font>
<input type="text" class="form-control default" id="rname" required name="rname" placeholder="Ваше имя(Можно на русском*)">
<input type="text" class="form-control default" id="phone" required name="phone" placeholder="Телефон(*)">
<input type="email" class="form-control default" id="email"  required name="email" placeholder="Email(*)">
<textarea name="mes" id="mes" class="form-control default" placeholder="Сообщение..."></textarea>
<button type="submit" value="Send" name="submit" class="btn btn-1 btn-1c white-animate with-arrow col-md-12 col-xs-12" id="contactForm"><span>Отправить</span><b></b></button>
                              <p class="custom-alert" role="alert"></p>
                            </div>
                          </form>
Всё отлично работает.

Идём далее. И переходим к самому обработчику.
Кликните здесь для просмотра всего текста
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
<?php
   if($_POST) {
        $to_email       = "test@yandex.ru"; //Recipient email, Replace with own email here
         //check if its an ajax request, exit if not
        if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') {
        
            $output = json_encode(array( //create JSON data
                'type'=>'error', 
                'text' => 'Sorry Request must be Ajax POST'
            ));
            die($output); //exit script outputting json data
        }
        //Sanitize input data using PHP filter_var().
        $name      = filter_var($_POST["name"], FILTER_SANITIZE_STRING);
        $email     = filter_var($_POST["email"], FILTER_SANITIZE_EMAIL);
        $mes       = filter_var($_POST["mes"], FILTER_SANITIZE_STRING);
        $rname     = filter_var($_POST["rname"], FILTER_SANITIZE_STRING);
 
        //additional php validation
        if(strlen($name)<4){ // If length is less than 4 it will output JSON error.
            $output = json_encode(array('type'=>'error', 'text' => 'Поле никнейм должно составлять минимум 4 символа'));
            die($output);
        }
        if(!filter_var($email, FILTER_VALIDATE_EMAIL)){ //email validation
            $output = json_encode(array('type'=>'error', 'text' => 'Пожалуйста, введите действительный адрес электронной почты!'));
            die($output);
        }
        if(strlen($mes)<3){ //check emtpy message
            $output = json_encode(array('type'=>'error', 'text' => 'Слишком короткое сообщение! Если вы не робот введите сообщение длиннее'));
            die($output);
        }
        if(strlen($rname)<0){ //check emtpy real name
            $output = json_encode(array('type'=>'error', 'text' => 'Слишком короткое Имя! Минимум 2 Символа в имени'));
            die($output);
        }
 
        //email body
        $message_body = $mes."\r\n\r\n-".$rname."\r\nEmail : ".$email."\r\n";
        $subject = "New Email From".$name;
 
        //proceed with PHP email.
        $headers = 'From: ' .$name.'' . "\r\n" .
        'Reply-To: '.$email.'' . "\r\n" .
        'X-Mailer: PHP/' . phpversion() . "\r\n";
        $send_mail = mail($to_email, $subject, $message_body, $headers);
 
        if(!$send_mail){
            //If mail couldn't be sent output error. Check your PHP email configuration (if it ever happens)
            $output = json_encode(array('type'=>'error', 'text' => 'Не удалось отправить почту! Пожалуйста, проверьте конфигурацию модуля почты.'));
            die($output);
        } else {
            $output = json_encode(array('type'=>'message', 'text' => 'Спасибо '.$rname .', Ваше сообщение будет доставлено и мы его обязательно прочтём.'));
            die($output);
        }
   }
 
?>


Всё приходит отлично, за исключением одного НО... поле
PHP
1
$rname
почему то игнорируется. Как будто его не заполняли.

0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.11.2016, 13:36
Ответы с готовыми решениями:

Как(чем) отправить почту HTML+Images?
Т.е. отправить в письме HTML проблемм нет но вот если в HTML есть имагес то оно неотправляется. ЧТО ДЕЛАТЬ!!! Пишите на kopijko@mail.ru

Отправить данные с формы на почту
Всем добрый день. Не получается отправить форму заявки с сайта. Есть форма &lt;form action=&quot;send.php&quot;...

Как отправить на почту файл из формы?
Нашел код php, который отправляет данные из формы на почту. Он работает. Но только нужно его дописать так, чтобы кроме текста, он отправлял...

1
Заблокирован
10.11.2016, 16:48
Не совсем понял в чём ошибка,- значение $_post[rname] =null? или не отображается из-за css?
если первое то пробуй в строки 13 19 37 56 вставить print 'post '.$_POST[rname].'var'.$rname.№строки
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.11.2016, 16:48
Помогаю со студенческими работами здесь

Отправить данные с формы на почту (Ajax)+ изображение с HTML5 Canvas
В общем, делаю сайт впервые в своей жизни на Wordpress. Идея сайта - интернет-магазин с каталогом и возможностью заказа товара...

Отправить на почту название формы, в которую были введены данные
Я обычно делаю подобную форму: //send form function send_form(obj) { var msg = $(obj).serialize(); $.ajax({ ...

Не получается отправить значение input на почту
Доброго времени суток! Есть форма: &lt;form action=&quot;/form-action.php&quot; id=&quot;webform-client-form-121&quot; method=&quot;POST&quot;&gt;&lt;div...

Отправить на почту выбранное значение radio кнопки
&lt;input type=&quot;radio&quot; name=&quot;names&quot; value=&quot;1&quot; checked=&quot;checked&quot; &gt; Вася &lt;input type=&quot;radio&quot; name=&quot;names&quot; value=&quot;2&quot; &gt; Галя Как сделать...

Отправка html формы на почту
Доброй ночи, коллеги. Для начала исходники, потом проблема: &lt;?php session_start(); $to = $_SESSION; $from =...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru