Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > HTML и CSS
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.06.2015, 21:13   #1
Polotenchik
Форумчанин
 
Аватар для Polotenchik
 
Регистрация: 04.12.2008
Сообщений: 260
По умолчанию Форма обратной связи (html)

Добрый день! Помогите, пожалуйста, разобраться. Скачал готовую html тему и там вставлена форма обратной связи. Письмо приходит, но пустое:
Name:
Email:
Subject:
Message:

В index.html файле вот такой код отправки письма:
PHP код:
<form id="main-contact-form" class="contact-form" name="contact-form" method="post" action="sendemail.php" role="form">
                            <
div class="row">
                                <
div class="col-sm-6">
                                    <
div class="form-group">
                                        <
input type="text" class="form-control" required="required" placeholder="Name">
                                    </
div>
                                </
div>
                                <
div class="col-sm-6">
                                    <
div class="form-group">
                                        <
input type="text" class="form-control" required="required" placeholder="Email address">
                                    </
div>
                                </
div>
                            </
div>
                            <
div class="row">
                                <
div class="col-sm-12">
                                    <
div class="form-group">
                                        <
textarea name="message" id="message" required="required" class="form-control" rows="8" placeholder="Message"></textarea>
                                    </
div>
                                    <
div class="form-group">
                                        <
button type="submit" class="btn btn-danger btn-lg">Отправить сообщение</button>
                                    </
div>
                                </
div>
                            </
div>
                        </
form
И рядом с файлом index.html лежит файл sendemail.php с таким вот содержимым:
PHP код:
<?php
    header
('Content-type: application/json');
    
$status = array(
        
'type'=>'success',
        
'message'=>'Email sent!'
    
);

    
$name = @trim(stripslashes($_POST['name'])); 
    
$email = @trim(stripslashes($_POST['email'])); 
    
$subject = @trim(stripslashes($_POST['subject'])); 
    
$message = @trim(stripslashes($_POST['message'])); 

    
$email_from $email;
    
$email_to 'sps-proect@yandex.ru';

    
$body 'Name: ' $name "\n\n" 'Email: ' $email "\n\n" 'Subject: ' $subject "\n\n" 'Message: ' $message;

    
$success = @mail($email_to$subject$body'From: <'.$email_from.'>');

    echo 
json_encode($status);
    die;
Где здесь ошибка? Вижу, что в файле забыли закрыть <?php - т.е. надо в конце добавить ?>, но это конечно не помогает.
Заранее большое спасибо!
Я бы изменил мир, но Бог не дает исходники...

Последний раз редактировалось Polotenchik; 13.06.2015 в 21:42.
Polotenchik вне форума Ответить с цитированием
Старый 13.06.2015, 21:24   #2
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Вряд ли я смогу помочь, но вот что в глаза бросилось:
Код:
$name = @trim(stripslashes($_POST[&apos;name&apos;])); 
    $email = @trim(stripslashes($_POST[&apos;email&apos;])); 
    $subject = @trim(stripslashes($_POST[&apos;subject&apos;])); 
    $message = @trim(stripslashes($_POST[&apos;message&apos;]));
Замените HTML-мнемонику &apos; на одинарную кавычку '
может, поможет (всё не читал, правда)
Вадим Мошев вне форума Ответить с цитированием
Старый 13.06.2015, 21:43   #3
Polotenchik
Форумчанин
 
Аватар для Polotenchik
 
Регистрация: 04.12.2008
Сообщений: 260
По умолчанию

Цитата:
Сообщение от Вадим Мошев Посмотреть сообщение
Вряд ли я смогу помочь, но вот что в глаза бросилось:
Код:
$name = @trim(stripslashes($_POST[&apos;name&apos;])); 
    $email = @trim(stripslashes($_POST[&apos;email&apos;])); 
    $subject = @trim(stripslashes($_POST[&apos;subject&apos;])); 
    $message = @trim(stripslashes($_POST[&apos;message&apos;]));
Замените HTML-мнемонику &apos; на одинарную кавычку '
может, поможет (всё не читал, правда)
Это я не верно код вставил сюда. Спасибо, что сказали ) Там кавычки...
Я бы изменил мир, но Бог не дает исходники...
Polotenchik вне форума Ответить с цитированием
Старый 13.06.2015, 22:47   #4
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Ещё проблема у вас, возможно, в том, что у вас ни у одного тега не задан атрибут name.
Вот, например,
Код:
<input type="text" class="form-control" required="required" placeholder="Email address">
среди всего прочего у вас должно быть прописано: name="email", причём, значение атрибута должно совпадать с ключём пост-параметров в php коде (то есть name, email, subject и message)
Вадим Мошев вне форума Ответить с цитированием
Старый 13.06.2015, 23:35   #5
Polotenchik
Форумчанин
 
Аватар для Polotenchik
 
Регистрация: 04.12.2008
Сообщений: 260
По умолчанию

Цитата:
Сообщение от Вадим Мошев Посмотреть сообщение
Ещё проблема у вас, возможно, в том, что у вас ни у одного тега не задан атрибут name.
Вот, например,
Код:
<input type="text" class="form-control" required="required" placeholder="Email address">
среди всего прочего у вас должно быть прописано: name="email", причём, значение атрибута должно совпадать с ключём пост-параметров в php коде (то есть name, email, subject и message)
Все равно не пашет. Добавил для примера
PHP код:
<input type="text" class="form-control" required="required" placeholder="Email адрес" name="email" id="email"
Все равно на почту приходит пустое письмо без указанного ящика
Я бы изменил мир, но Бог не дает исходники...
Polotenchik вне форума Ответить с цитированием
Старый 13.06.2015, 23:58   #6
Polotenchik
Форумчанин
 
Аватар для Polotenchik
 
Регистрация: 04.12.2008
Сообщений: 260
По умолчанию

Вот такой еще скрипт имеется к теме:

PHP код:
    //Ajax contact
    
var form = $('.contact-form');
    
form.submit(function () {
        
$this = $(this);
        $.
post($(this).attr('action'), function(data) {
            
$this.prev().text(data.message).fadeIn().delay(3000).fadeOut();
        },
'json');
        return 
false;
    }); 
Может все дело в нем? В самом начале есть contact-form
<form id="main-contact-form" class="contact-form" name="contact-form" method="post" action="sendemail.php" role="form">
Я бы изменил мир, но Бог не дает исходники...
Polotenchik вне форума Ответить с цитированием
Старый 14.06.2015, 00:09   #7
Polotenchik
Форумчанин
 
Аватар для Polotenchik
 
Регистрация: 04.12.2008
Сообщений: 260
По умолчанию

Вопрос решен. Проблема была в js
Заменил на
PHP код:
$('.contact-form').submit(function () {'use strict',
    
$this = $(this);
    $.
post("sendemail.php", $(".contact-form").serialize(),function(result){
        if(
result.type == 'success'){
            
$this.prev().text(result.message).fadeIn().delay(3000).fadeOut();
        }
    });
    return 
false;
}); 
и все ок.
Я бы изменил мир, но Бог не дает исходники...

Последний раз редактировалось Вадим Мошев; 14.06.2015 в 00:55.
Polotenchik вне форума Ответить с цитированием
Старый 19.08.2016, 03:37   #8
wolf_den
Пользователь
 
Регистрация: 28.10.2011
Сообщений: 14
По умолчанию А можно подробнее?

Цитата:
Сообщение от Polotenchik Посмотреть сообщение
Вопрос решен. Проблема была в js
Заменил на
PHP код:
$('.contact-form').submit(function () {'use strict',
    
$this = $(this);
    $.
post("sendemail.php", $(".contact-form").serialize(),function(result){
        if(
result.type == 'success'){
            
$this.prev().text(result.message).fadeIn().delay(3000).fadeOut();
        }
    });
    return 
false;
}); 
и все ок.
Привет. В каком именно JS вносил исправления и как в конечном итоге выглядит php?
wolf_den вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Форма обратной связи Василий1985 PHP 3 20.03.2014 11:03
форма обратной связи Ol'ga PHP 3 01.03.2013 12:40
Форма обратной связи Cone PHP 9 07.12.2011 07:47
Форма обратной связи margo_31 Помощь студентам 6 20.09.2009 20:38
Форма обратной связи belvision PHP 5 10.11.2008 16:57