Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
dimavalik
1 / 1 / 2
Регистрация: 08.08.2015
Сообщений: 18
1

Отправка сообщения на E-mail по нажатию кнопки

19.08.2017, 13:42. Просмотров 314. Ответов 2
Метки нет (Все метки)

Есть скрипт и форма в одном файле.

При открытии файла в браузере приходит пустое сообщение на E-mail.
Нужно, чтобы отправка происходила не при открытии, а при нажатии кнопки либо при открытии страницы "Спасибо".
Как реализовать, какой код и куда нужно добавить?

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
 
const THANKS_URL = 'http://site.ru/thanks.html';
 
if (isset($_POST['order'])) {
    $post = [
        'name' => $_POST['name'],
        'phone' => $_POST['phone'],
    ];
 
    $ch = curl_init('http://site.ru/add');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
    $response = json_decode(curl_exec($ch));
    curl_close($ch);
 
    if (isset($response->response->success) && $response->response->success == 'true') {
    
        $conversion = $response->response->conversions[0];
        $url = THANKS_URL . (strrpos(THANKS_URL, '?') ? '&' : '?') . http_build_query($conversion);
        header('Location: '. $url);
        exit;
    }
}
 
$to      = 'user@mail.ru';
$subject = 'Тема';
$message = "Имя: ".$name = $_POST['name']."\r\n";
$message .= "Номер телефона: ".$phone = $_POST['phone']."\r\n";
$headers = 'From: mail@site.ru' . "\r\n" .
    'Reply-To: mail@site.ru' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();
 
mail($to, $subject, $message, $headers);
 
?>
<!DOCTYPE html>
<html>
<head>
    <title>Форма</title>
</head>
<body>
    <form action="" method="POST">
        <input type="text" name="name" placeholder="Ваше имя"><br>
        <input type="text" name="phone" placeholder="Ваш телефон" required><br>
        <input type="submit" name="order">
    </form>
</body>
</html>
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.08.2017, 13:42
Ответы с готовыми решениями:

Отправка сообщения на E-mail
Как осуществить отправку (html) сообщения на E-mail. На e-mail с переменной...

Отправка сообщения с сайта на e-mail
Здравствуйте, подскажите в чем проблема кода? Данные не отправляются с сайта ...

Отправка файла на сервер по нажатию кнопки
Мне дали задание написать прогу чтоб при нажатии на кнопку прога брала фаил из...

Отправка сообщения на указанный e-mail
Доброго времени!Подскажите как реализовать отправку сообщения на указанный в...

В файле mail.tpl не выводится заголовок сообщения {$subject} и текст сообщения {$message}
ребят помогите разобраться, изначально у меня все выводилось через функцию...

2
Jodah
Эксперт PHP
2847 / 2479 / 1056
Регистрация: 01.08.2012
Сообщений: 8,771
19.08.2017, 16:12 2
Цитата Сообщение от dimavalik Посмотреть сообщение
PHP
1
if (isset($_POST['order'])) {
Очевидно поместить отправку письма в это условие.
0
dimavalik
1 / 1 / 2
Регистрация: 08.08.2015
Сообщений: 18
22.08.2017, 17:33  [ТС] 3
Jodah, спасибо, работает.

А если код был бы такой, как ниже, какой код и куда нужно вставить, чтобы сообщение отправлялось не при открытии файла, а при нажатии кнопки.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php header("Content-Type: text/html; charset=utf-8");
 
$to      = 'user@mail.ru';
$subject = 'Тема';
$message = "Имя: ".$name = $_POST['name']."\r\n";
$message .= "Номер телефона: ".$phone = $_POST['phone']."\r\n";
$headers = 'From: mail@site.ru' . "\r\n" .
    'Reply-To: mail@site.ru' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();
 
mail($to, $subject, $message, $headers);
 
?>
<!DOCTYPE html>
<html>
<head>
    <title>Форма</title>
</head>
<body>
    <form action="http://site.ru/send.php" method="POST">
        <input type="text" name="name" placeholder="Ваше имя"><br>
        <input type="text" name="phone" placeholder="Ваш телефон" required><br>
        <input type="submit" name="order">
    </form>
</body>
</html>
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.08.2017, 17:33

Отправка письма на mail.ru через PHP mail()
Добрый день! Перелопатил много чего. Подскажите как все-таки отправить письмо...

Не отправляет сообщения на e-mail ($address)
Здрасте. Помогите пожалуйста, у меня сайт типа визитки, нужно что бы после...

Не отправляются сообщения на E-mail с формы на сайте
Здравствуйте! Скачал в интернете шаблон одностраничника (если поможет, вот...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru