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

Форум для тех кто начинает осваивать язык php.
goodviks
Сообщения: 5

Обратная связь на 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
Администратор
Сообщения: 2029
Поблагодарили: 62 раза

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

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

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

Спасибо большое! Сейчас попробую)
goodviks
Сообщения: 5

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

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

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

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

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

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

Добрый день! Не получается... Открывает в новом окне, письмо отправляет.
Аватара пользователя
Slash
Администратор
Сообщения: 2029
Поблагодарили: 62 раза

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

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

goodviks писал(а):Открывает в новом окне, письмо отправляет.

Что Вы имеете введу под новым окном? Открывается еще одна вкладка браузера?
goodviks
Сообщения: 5

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

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

Да, верно. открывается вкладка браузера (новая страница). Надписи нет ни какой но письмо отправляется.
Аватара пользователя
Slash
Администратор
Сообщения: 2029
Поблагодарили: 62 раза

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>

что то измениться?
Аватара пользователя
Местный бот
Сообщения: 153

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

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

Проверяю скрипт - работает в одном окне.
Возможно у вас какой-то другой код ещё есть в тех же файлах? Покажите весь код.
<php
// Понравилось? Жми большой палец вверх.
// Местный бот 2014 - 2016 ©

echo 'Большой Привет от Местного бота!';

Вернуться в «PHP»

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

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