Обратная связь на PHP

Форум для тех кто начинает осваивать язык php.
goodviks
Сообщения: 5
Зарегистрирован: Ср май 06, 2015 6:00 pm

Обратная связь на PHP

Сообщение goodviks » Ср май 06, 2015 6:10 pm

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

Код: Выделить всё

<form class="form-horizontal">
<div class="form-group">
<div class="col-sm-4" style="position:relative">
<input type="text" name="Name" data-new-placeholder="Как Вас зовут?" class="form-control label_better" placeholder="Ваше имя">
</div>
<div class="col-sm-4">
<input type="text" name="Email" class="form-control label_better" placeholder="Email">
</div>
<div class="col-sm-4">
<input type="text" name="Phone" class="form-control label_better" placeholder="Ваш Телефон">
</div>
</div>
<div class="form-group">
<div class="col-sm-12">
<textarea class="form-control label_better" placeholder="текст сообщения.." rows="7"></textarea>
</div>
</div>
<div class="form-group commands">
<button class="btn btn-primary">Отправить сообщение</button>
</div>
</form>  
помогите пожалуйста привязать скрипт отправки письма на php. С уважением Виктория.

Реклама
Аватара пользователя
Slash
Администратор
Сообщения: 2122
Зарегистрирован: Сб авг 11, 2012 7:39 am
Поблагодарили: 75 раз

Re: Обратная связь на PHP

Сообщение Slash » Ср май 06, 2015 8:07 pm

Здравствуйте Виктория! Как я понял, Вам надо написать скрипт под Вашу форму? Начните с замены своей формы на эту:

Код: Выделить всё

<form class="form-horizontal" method="POST">
    <div class="form-group">
        <div class="col-sm-4" style="position:relative">
            <input type="text" name="Name" data-new-placeholder="Как Вас зовут?" class="form-control label_better" placeholder="Ваше имя">
        </div>
        <div class="col-sm-4">
            <input type="text" name="Email" class="form-control label_better" placeholder="Email">
        </div>
        <div class="col-sm-4">
            <input type="text" name="Phone" class="form-control label_better" placeholder="Ваш Телефон">
        </div>
    </div>
    <div class="form-group">
        <div class="col-sm-12">
            <textarea name="Text" class="form-control label_better" placeholder="текст сообщения.." rows="7"></textarea>
        </div>
    </div>
    <div class="form-group commands">
        <button type="submit" name="submit" class="btn btn-primary">Отправить сообщение</button>
    </div>
</form> 
Я тут кое что исправил. Теперь сам скрипт:

Код: Выделить всё

<?php
if (isset($_POST['submit']))
{
    if (empty($_POST['Name']) or empty($_POST['Email']) or empty($_POST['Phone']) or empty($_POST['Text']))
    {
        echo 'Пожалуйста заполните все поля.';
    }
    else
    {
        $my_email = 'почта@маил.ру'; # Тут изменить на свою почту
        $headers ='Content-Type:text/html; charset=utf-8';
        $text = $_POST['Text'] . '<br /><br /><b>Автор сообщения: ' . $_POST['Name'] . '<br />Телефон: ' . $_POST['Phone'] . '<br />Эл Почта: ' . $_POST['Email'] . '</b>';
        mail($my_email, $_POST['Name'], $text, $headers);    
        echo 'Сообщение успешно отправлено!';
    }
} 
Теперь, в строке:

Код: Выделить всё

        $my_email = 'почта@маил.ру'; 
замените на свою почту.
Если что спрашивайте, допилим скрипт, как надо!

goodviks
Сообщения: 5
Зарегистрирован: Ср май 06, 2015 6:00 pm

Re: Обратная связь на PHP

Сообщение goodviks » Ср май 06, 2015 8:21 pm

Спасибо большое! Сейчас попробую)

goodviks
Сообщения: 5
Зарегистрирован: Ср май 06, 2015 6:00 pm

Re: Обратная связь на PHP

Сообщение goodviks » Чт май 07, 2015 12:00 am

Огромнейшее спасибо! Работает! А не подскажите как сделать чтобы информация о "Пожалуйста заполните все поля" и "Сообщение успешно отправлено!" открывалось в этом же окне а не в новом? Спасибо за ранее!

Аватара пользователя
Slash
Администратор
Сообщения: 2122
Зарегистрирован: Сб авг 11, 2012 7:39 am
Поблагодарили: 75 раз

Re: Обратная связь на PHP

Сообщение Slash » Чт май 07, 2015 6:30 am

У Вас HTML отдельно (шаблон)?
Тогда сделайте так: перед формой добавте:

Код: Выделить всё

<?php echo $info; ?>
В скрипте, перед:

Код: Выделить всё

if (isset($_POST['submit'])) 
добавьте:

Код: Выделить всё

$info = isset($info) ? $info : null; 
Теперь строчки сообщений:

Код: Выделить всё

        echo 'Пожалуйста заполните все поля.';
        echo 'Сообщение успешно отправлено!'; 
замените на:

Код: Выделить всё

        $info = 'Пожалуйста заполните все поля.';
        $info = 'Сообщение успешно отправлено!'; 
В итоге должно получится так: HTML форма:

Код: Выделить всё

<?php echo $info; ?>
<form class="form-horizontal" method="POST">
    <div class="form-group">
        <div class="col-sm-4" style="position:relative">
            <input type="text" name="Name" data-new-placeholder="Как Вас зовут?" class="form-control label_better" placeholder="Ваше имя">
        </div>
        <div class="col-sm-4">
            <input type="text" name="Email" class="form-control label_better" placeholder="Email">
        </div>
        <div class="col-sm-4">
            <input type="text" name="Phone" class="form-control label_better" placeholder="Ваш Телефон">
        </div>
    </div>
    <div class="form-group">
        <div class="col-sm-12">
            <textarea name="Text" class="form-control label_better" placeholder="текст сообщения.." rows="7"></textarea>
        </div>
    </div>
    <div class="form-group commands">
        <button type="submit" name="submit" class="btn btn-primary">Отправить сообщение</button>
    </div>
</form>
PHP скрипт:

Код: Выделить всё

<?php
$info = isset($info) ? $info : null;
if (isset($_POST['submit']))
{
    if (empty($_POST['Name']) or empty($_POST['Email']) or empty($_POST['Phone']) or empty($_POST['Text']))
    {
        $info = 'Пожалуйста заполните все поля.';
    }
    else
    {
        $my_email = 'почта@маил.ру'; # Тут изменить на свою почту
        $headers ='Content-Type:text/html; charset=utf-8';
        $text = $_POST['Text'] . '<br /><br /><b>Автор сообщения: ' . $_POST['Name'] . '<br />Телефон: ' . $_POST['Phone'] . '<br />Эл Почта: ' . $_POST['Email'] . '</b>';
        mail($my_email, $_POST['Name'], $text, $headers);    
        $info = 'Сообщение успешно отправлено!';
    }
} 

goodviks
Сообщения: 5
Зарегистрирован: Ср май 06, 2015 6:00 pm

Re: Обратная связь на PHP

Сообщение goodviks » Чт май 07, 2015 12:14 pm

Добрый день! Не получается... Открывает в новом окне, письмо отправляет.

Аватара пользователя
Slash
Администратор
Сообщения: 2122
Зарегистрирован: Сб авг 11, 2012 7:39 am
Поблагодарили: 75 раз

Re: Обратная связь на PHP

Сообщение Slash » Чт май 07, 2015 1:20 pm

goodviks писал(а):Открывает в новом окне, письмо отправляет.
Что Вы имеете введу под новым окном? Открывается еще одна вкладка браузера?

goodviks
Сообщения: 5
Зарегистрирован: Ср май 06, 2015 6:00 pm

Re: Обратная связь на PHP

Сообщение goodviks » Чт май 07, 2015 3:26 pm

Да, верно. открывается вкладка браузера (новая страница). Надписи нет ни какой но письмо отправляется.

Аватара пользователя
Slash
Администратор
Сообщения: 2122
Зарегистрирован: Сб авг 11, 2012 7:39 am
Поблагодарили: 75 раз

Re: Обратная связь на PHP

Сообщение Slash » Чт май 07, 2015 4:44 pm

Странно, у себя проверяю все происходит в одном окне, с уведомлением об успешной отправкой письма...

А если убрать все дивы и классы из формы (возможно к классам подключен JS, который открывает новую вкладку):

Код: Выделить всё

<?php echo $info; ?>
<form method="POST">
    <input type="text" name="Name" data-new-placeholder="Как Вас зовут?" placeholder="Ваше имя">
    <input type="text" name="Email" placeholder="Email">
    <input type="text" name="Phone" placeholder="Ваш Телефон">
    <textarea name="Text" placeholder="текст сообщения.." rows="7"></textarea>
    <button type="submit" name="submit">Отправить сообщение</button>
</form>
что то измениться?

Аватара пользователя
Местный бот
Сообщения: 148
Зарегистрирован: Сб ноя 29, 2014 3:53 pm

Re: Обратная связь на PHP

Сообщение Местный бот » Пт май 08, 2015 7:10 pm

Проверяю скрипт - работает в одном окне.
Возможно у вас какой-то другой код ещё есть в тех же файлах? Покажите весь код.

Ответить Пред. темаСлед. тема

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость