|
|
|
| Добрый день! Подскажите пожалуйста у меня вот такой скрипт
<?php
if(isset($_POST['unique'], $_POST['country'], $_POST['operator'], $_POST['number'], $_POST['phone'], $_POST['message'], $_POST['hash']))
{
$secret_key = 'TDUTYBQREKZGBY';
$md5 = md5($_POST['unique'].$_POST['country'].$_POST['operator'].$_POST['number'].$_POST['phone'].$_POST['message'].$secret_key);
if(strcasecmp($md5, $_POST['hash']) == 0)
{
header("Content-Type: text/plain; charset=utf-8");
exit('сообщение принято');
}
$to = 'test@test.ru';
$from = 'mail@mail.ru';
$subject = 'Получено сообщение';
$subject = '=?utf-8?b?'. base64_encode($subject) .'?=';
$headers = "Content-type: text/plain; charset=\"utf-8\"\r\n";
$headers .= "From: ". $from ." <". $from ."> \r\n";
$messag = 'Телефон Абонента: $phone \n Текст SMS: $message"';
mail($to, $subject, $messag, $headers);
}
?>
|
Это скрипт агрегатора по приему платежей. При поступлении сообщения с телефона обработчик обращается к этому файлу. Ответное сообщение отправляется правильно но не отправляется емайл сообщение. Подскажите что здесь не так? | |
|
|
|
|
|
|
|
для: kyljapin
(15.09.2013 в 18:25)
| | Потому, что exit('сообщение принято') не только выводит сообщение, но и прекращает работу скрипта, то есть все, что за этой строкой выполнятся не будет. | |
|
|
|
|
|
|
|
для: confirm
(15.09.2013 в 18:45)
| | А как подружить? То есть доделать? | |
|
|
|
|
|
|
|
для: kyljapin
(15.09.2013 в 18:47)
| | Ну не знаю, если надо действительно сообщить что ОК и отослать почту, тогда так:
<?
if($md5 == $_POST['hash']) {
header("Content-Type: text/plain; charset=utf-8");
echo 'Сообщение принято';
$to = 'test@test.ru';
$from = 'mail@mail.ru';
$subject = 'Получено сообщение';
$subject = '=?utf-8?b?'. base64_encode($subject) .'?=';
$headers = "Content-type: text/plain; charset=\"utf-8\"\r\n";
$headers .= "From: ". $from ." <". $from ."> \r\n";
$messag = 'Телефон Абонента: $phone \n Текст SMS: $message"';
mail($to, $subject, $messag, $headers);
}
|
| |
|
|
|
|
|
|
|
для: confirm
(15.09.2013 в 18:54)
| | Parse error: syntax error, unexpected $end in /home/h9656/data/www/s | |
|
|
|
|
|
|
|
для: kyljapin
(15.09.2013 в 19:04)
| | Ну боже мой, это же пример, который описывает условие, действия по которому обрамлены в фигурные скобки. А вы скопировали это и не корректно вставили в код на своей странице. Вот и получили ошибку.
Ищите лишнюю или отсутствующую фигурную скобку теперь в своем коде. В html редакторе это легко выявить сворачивая конструкции или просто отмечая одну из скобок, а редактор отметит парную ей. | |
|
|
|
|
|
|
|
для: confirm
(15.09.2013 в 19:11)
| | Извиняюсь за назойливость но я новичок в этом деле. Я добился правильный обратный ответ при отправки смс и отправку сообщения на почту вот скрипт
<?php
if(isset($_POST['unique'], $_POST['country'], $_POST['operator'], $_POST['number'], $_POST['phone'], $_POST['message'], $_POST['hash']))
{
$secret_key = 'TDUTYBQREKZGBY';
$md5 = md5($_POST['unique'].$_POST['country'].$_POST['operator'].$_POST['number'].$_POST['phone'].$_POST['message'].$secret_key);
if(strcasecmp($md5, $_POST['hash']) == 0)
{
$to = 'test@test.ru';
$from = 'test@test.ru';
$subject = 'получена SMS';
$subject = '=?utf-8?b?'. base64_encode($subject) .'?=';
$headers = "Content-type: text/plain; charset=\"utf-8\"\r\n";
$headers .= "From: ". $from ." <". $from ."> \r\n";
$messag = 'Телефон абонента $phone\n текст SMS: $message"';
mail($to, $subject, $messag, $headers);
}
header("Content-Type: text/plain; charset=utf-8");
exit('Ваше сообщение принято');
}
?>
|
Но у меня сообщение приходит Телефон абонента $phone\n текст SMS: $message то есть не берет эти переменные для отправки на емайл. Что может быть? | |
|
|
|
|
|
|
|
для: kyljapin
(15.09.2013 в 19:42)
| | Вы новичок, и не смотря на это, после того как я показал как и объяснил почему, вы вносите свою правку - выносите вывод сообщения из условия. Вы понимаете, что это означает, что фактически неполучение этого сообщения (соблюдения условий заполнения его) все равно будет сопровождаться сообщением пользователю о его получении?
И зачем exit? После этого есть еще код?
У вас не определены переменные $phone и $message, поэтому на почту они и не приходят. Это вообще-то должно вызвать сообщение (если не заблокирован их вывод), и как следствие вывод ошибки при передаче заголовка.
Замените $phone и $message на $_POST['phone'] и $_POST['message'] соответственно. | |
|
|
|
|
|
|
|
для: confirm
(15.09.2013 в 20:13)
| | Менял выдает ошибку Parse error: syntax error, unexpected T_STRING in /home/h9656/data/w
а эти переменные $phone $message берутся из сообщения агрегатора к этому обработчику | |
|
|
|
|
|
|
|
для: kyljapin
(15.09.2013 в 20:17)
| | Ну так если вставлять лишь бы вставить, то конечно будет ошибка:
<?
$messag = 'Телефон абонента '.$_POST['phone']."\n текст SMS: ".$_POST['message'];
|
| |
|
|
|
|
|
|
|
для: confirm
(15.09.2013 в 20:21)
| | Спасибо все получилось, и не судите строго. | |
|
|
|
|
|
|
|
для: kyljapin
(15.09.2013 в 20:41)
| | Я не судья. ) | |
|
|
|