Не отправляется сообщение из формы обратной связи

(Ответов: 10, Просмотров: 7291)
Страница 1 из 2 12 Последняя
  1. Опытный
    • Регистрация: 06.08.2013
    • Сообщений: 307
    • Репутация: 5
    Уважаемые форумчане. Суть проблемы вот в чем: Я на своем сайте (пока на бесплатном хостинге: ссылка http://fr3809bb.bget.ru/) создал страницу Контакты и в ней буду отображать форму обратной связи.
    Я создал отдельный файл под названием feedback.php. Его содержимое:
    PHP код:
    <?php
    /*
    Template Name: Feedback
    */
    ?>
    <!--Обработка  данных и ошибок-->
    <?php
    if(isset($_POST['submitted'])) {
        if(
    trim($_POST['contactName']) === '') {
            
    $nameError 'Пожалуйста, введите ваше имя.';
            
    $hasError true;
        } else {
            
    $name trim($_POST['contactName']);
        }

        if(
    trim($_POST['email']) === '')  {
            
    $emailError 'Пожалуйста, введите адрес вашей электронной почты.';
            
    $hasError true;
        } else if (!
    preg_match("/^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$/i"trim($_POST['email']))) {
            
    $emailError 'Адрес электронной почты некорректный.';
            
    $hasError true;
        } else {
            
    $email trim($_POST['email']);
        }

        if(
    trim($_POST['subject']) === '') {
            
    $subject 'Сообщение с сайта';
        } else {
            
    $subject stripslashes(trim($_POST['subject']));
        }

        if(
    trim($_POST['comments']) === '') {
            
    $commentError 'Пожалуйста, введите ваше сообщение.';
            
    $hasError true;
        } else {
            
    $comments stripslashes(trim($_POST['comments']));
        }

        if(!isset(
    $hasError)) {
            
    $emailTo get_option('tz_email');
            if (!isset(
    $emailTo) || ($emailTo == '') ){
                
    $emailTo get_option('admin_email');
            }
            
    // тут можно железно установить почту для отправки письма, например так:
            // $emailTo = 'admin@site.ru';
            
    $body "Имя: $name \n\nEmail: $email \n\nСообщение: $comments";
            
    $headers 'From: '.$name.' <'.$emailTo.'>' "\r\n" 'Reply-To: ' $email;

            
    wp_mail($emailTo$subject$body$headers);
            
    $emailSent true;
            unset(
    $_POST);
        }
    ?>
    <!--Конец обработки  данных и ошибок-->
    <?php get_header()?>
            <div id="main">
                <div class="beadcrumb">
                        <div class="left_crumb">
                            <div class="path"></div>
                        </div>
                        <div class="bg_crumb">
                             <?php if (function_exists('dimox_breadcrumbs')) dimox_breadcrumbs(); ?> 
                        </div>
                        <div class="right_crumb"></div>
                        <div class="right_corner_crumb"></div>
                    </div>
                <?php get_sidebar()?>    
                <div id="content">
                    <div class="corner_content"></div>    
                <?php if(have_posts()):?>
                    <?php  while(have_posts()):the_post()?>
            
                    <div class="d"><?php the_post_thumbnail();?></div>
                    <div class="content">
                        <!--Проверка в случае ошибки или удачной отсылки письма. Выдается соответствующие сообщение-->
                        <?php if(isset($emailSent) && $emailSent == true) { ?>
                            <div class="thanks">
                                <p>Спасибо за ваше письмо. Я постараюсь, как можно скорее на него ответить.</p>
                            </div>
                        <?php } else { ?>
                          
                            <?php if(isset($hasError)) { ?>
                                <p class="error">Извините, но отправить письмо не удалось. Возможно вы допустили ошибки при заполнении формы.<p>
                            <?php ?>
                        <?php ?>
                        <!--Конец проверки-->


                        <!--HTML-код формы отправки сообщения пользователем-->
                    <form action="<?php the_permalink(); ?>" id="contactForm" method="post">
                        <p>Ваше имя (обязательно):<br />
                            <input type="text" name="contactName" id="contactName" class="required" value="<?php if(isset($_POST['contactName'])) echo $_POST['contactName'];?>" />
                            <?php if($nameError != '') { ?>
                           <span class="error"><?=$nameError;?></span>
                                <?php ?>
                        </p>
                        <p>Ваш E-Mail (обязательно):<br />
                            <input type="text" name="email" id="email" class="required email" value="<?php if(isset($_POST['email']))  echo $_POST['email'];?>" />
                            <?php if($emailError != '') { ?>
                                <span class="error"><?=$emailError;?></span>
                                <?php ?>
                            </p>
                        <p>Тема:<br />
                            <input type="text" name="subject" id="subject" value="<?php if(isset($_POST['subject']))  echo $_POST['subject'];?>" />
                        </p>
                            <p>Сообщение (обязательно):<br />
                            <textarea name="comments" id="commentsText" class="required"><?php if(isset($_POST['comments'])) { if(function_exists('stripslashes')) { echo stripslashes($_POST['comments']); } else { echo $_POST['comments']; } } ?></textarea>
                               <?php if($commentError != '') { ?>
                            <span class="error"><?=$commentError;?></span>
                            <?php ?>
                        </p>
                            <input type="submit" class="button" value="Отправить сообщение"/>
                            <input type="hidden" name="submitted" id="submitted" value="true" />
                    </form>
                        <!--Конец HTML-кода формы отправки сообщения пользователем-->
                    </div>                
                    <?php endwhile;?>
                        <?php endif;?>    
                </div>
                <div class="right_top">
                    <div class="right_corner_top"></div>
                </div>
                <div id="right">
                    <div class="right_corner"></div>
                    <div class="box">
                        <div class="box_title">Популярное</div>
                        <div class="box_content">
                            <ul>
                                <?php
                                    query_posts
    ('meta_key=post_views_count&orderby=meta_value_num&posts_per_page=5');
                                    if(
    have_posts()):
                                    while(
    have_posts()):
                                    
    the_post();
                                
    ?>
                                <li><a href="<?php the_permalink()?>" title="<?php the_title_attribute();?>"><?php the_title();?></a>
                                <?php
                                    
    endwhile;
                                    endif;
                                
    wp_reset_query();
                                
    ?>                
                            </ul>
                        </div>
                        <div class="bottom-bg-title"></div>
                    </div>    
                    <div class="post"><!--Начало класса Новых постов на сайте-->
                        <p>Новинки</p>
    <ul class="news">                
         <?php query_posts('showposts=5'); ?>       
         <?php while (have_posts()) : the_post(); ?>
            <li>  
                <!-- Здесь ваше изображение -->     
                <a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a>
                <!--  <?php the_time('l | d.m.Y'?> | <?php comments_popup_link('Комментариев нет.''1 Комментарий''Комментариев %'); ?>-->    
             </li>
        <?php endwhile; ?>
    </ul>            
                        <div class="bottom-bg-title"></div>
                    </div><!--Конец класса Новых постов на сайте-->
                </div>
            </div>
            <?php get_footer()?>
    Потом создал страницу Контакты и выбрал для нее шаблон Feedback. Сохранил все. Набираю текст, все работает - работают все проверки. Нажимаю отправить Выводится сообщение Спасибо за ваше письмо. Я постараюсь, как можно скорее на него ответить.
    Но письмо мне на почту не приходить. В чем причина?
    Зарание благодарен!
    Последний раз редактировалось SergeyNetIt; 20.12.2013 в 15:20.
    • 0
  2. Гуру Аватар для 3s777
    • Регистрация: 09.02.2013
    • Сообщений: 1,418
    • Репутация: 384
    • Webmoney BL: ?
    а вы не пробовали поставить какой нибудь плагин обратной связи и через него отправить письмо? Например, вот этот http://wordpress.org/plugins/contact-form-7/
    Если письмо через плагин отправится, тогда проблема в вашем коде, если не отправится тогда либо в настройках хостинга, либо в настройках сайта
    • 0
  3. Опытный
    • Регистрация: 06.08.2013
    • Сообщений: 307
    • Репутация: 5
    3s777,В том то и дело, что раньше этот код работал на сайте http://webtesting.e3w.ru/ . Сайт и сейчас работает и письма я получаю. Просто он постоянно глючил и я перешел на другой бесплатный хостинг. И перенес туда уже давно этот сайт. Только сейчас увидел, что сообщения мне не приходят. А с того сайта - приходят
    • 0
  4. Гуру Аватар для 3s777
    • Регистрация: 09.02.2013
    • Сообщений: 1,418
    • Репутация: 384
    • Webmoney BL: ?
    SergeyNetIt, я же говорю, возможно проблема в настройках хостинга или сайта, но лучше в этом убедится, воспользовавшись плагином
    • 0
  5. Опытный
    • Регистрация: 06.08.2013
    • Сообщений: 307
    • Репутация: 5
    3s777,сейчас установлю плагин, проверю

    ---------- Сообщение добавлено 12:49 ---------- Предыдущее 12:40 ----------

    3s777,Установил плагин. Прописал в странице поста [contact-form-7 id="207" title="Контактная форма 1"]. Сохранил. страница появилась. Форма тоже. Заполняю и нажимаю отправить. Появляется вот такое сообщение http://joxi.ru/xyC0UhjKTJB-EZFOhRU
    В чем проблема?
    • 0
  6. Гуру Аватар для 3s777
    • Регистрация: 09.02.2013
    • Сообщений: 1,418
    • Репутация: 384
    • Webmoney BL: ?
    SergeyNetIt, думаю стоит написать хостеру, у меня было подобное, что-то там у хостера было выключено, включили и все заработало
    • 0
  7. Опытный
    • Регистрация: 06.08.2013
    • Сообщений: 307
    • Репутация: 5
    3s777,Я тоже так думаю. Потому что я поставил стандартную тему, таже ошибка. Как узнаю у хостера отпишусь

    ---------- Сообщение добавлено 14:15 ---------- Предыдущее 13:00 ----------

    3s777,Я получил письмо от хостера:
    "Здравствуйте. К сожалению на тарифе freehosting почтовые сервисы не
    предоставляются."
    Это значит, что не какими средствами пользователи не смогут написать мне письмо. Даже, если я установлю плагин обратной связи.
    Так нужно это понимать?
    • 0
  8. Разработка любых сайтов Аватар для ArhStrAngeR
    • Регистрация: 08.06.2011
    • Сообщений: 3,376
    • Записей в дневнике: 1
    • Репутация: 2505
    SergeyNetIt,да

    ---------- Сообщение добавлено 16:19 ---------- Предыдущее 16:18 ----------

    Вы можете конечно заставить это работать, но слишком много гемора в этом.
    • 2

    Спасибо сказали:

    3s777(20.12.2013), SergeyNetIt(20.12.2013),
  9. Гуру Аватар для 3s777
    • Регистрация: 09.02.2013
    • Сообщений: 1,418
    • Репутация: 384
    • Webmoney BL: ?
    SergeyNetIt, я бы подыскивал другого хостера
    • 0
  10. Опытный
    • Регистрация: 06.08.2013
    • Сообщений: 307
    • Репутация: 5
    3s777,Я конечно выберу другого хостера. Я разместил там сайт для тестов. Другого нормального бесплатного хостинга я не нашел. Через неделю планирую разместить на платном.
    • 0
Страница 1 из 2 12 Последняя

Похожие темы

Темы Раздел Ответов Последний пост
как поменять кодировку в скрипте формы обратной связи
Web программирование 5 28.01.2013 11:50
Неверная кодировка из формы обратной связи
Web программирование 7 02.07.2012 16:26
Автозаполнение формы обратной связи, как это сделать ?
Web программирование 20 18.01.2012 10:46
Форма обратной связи на WP
Web программирование 4 15.08.2011 14:06
Форма обратной связи на WP
Вопросы от новичков 2 15.08.2011 01:32

У кого попросить инвайт?

Вы можете попросить инвайт у любого модератора:

Информеры