| Уважаемые форумчане. Суть проблемы вот в чем: Я на своем сайте (пока на бесплатном хостинге: ссылка 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. |