Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Подскажите почему не отправляются емайл сообщения
 
 автор: kyljapin   (15.09.2013 в 18:25)   письмо автору
 
 

Добрый день! Подскажите пожалуйста у меня вот такой скрипт

<?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);


?>


Это скрипт агрегатора по приему платежей. При поступлении сообщения с телефона обработчик обращается к этому файлу. Ответное сообщение отправляется правильно но не отправляется емайл сообщение. Подскажите что здесь не так?

  Ответить  
 
 автор: confirm   (15.09.2013 в 18:45)   письмо автору
 
   для: kyljapin   (15.09.2013 в 18:25)
 

Потому, что exit('сообщение принято') не только выводит сообщение, но и прекращает работу скрипта, то есть все, что за этой строкой выполнятся не будет.

  Ответить  
 
 автор: kyljapin   (15.09.2013 в 18:47)   письмо автору
 
   для: confirm   (15.09.2013 в 18:45)
 

А как подружить? То есть доделать?

  Ответить  
 
 автор: confirm   (15.09.2013 в 18:54)   письмо автору
 
   для: 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); 
}

  Ответить  
 
 автор: kyljapin   (15.09.2013 в 19:04)   письмо автору
 
   для: confirm   (15.09.2013 в 18:54)
 

Parse error: syntax error, unexpected $end in /home/h9656/data/www/s

  Ответить  
 
 автор: confirm   (15.09.2013 в 19:11)   письмо автору
 
   для: kyljapin   (15.09.2013 в 19:04)
 

Ну боже мой, это же пример, который описывает условие, действия по которому обрамлены в фигурные скобки. А вы скопировали это и не корректно вставили в код на своей странице. Вот и получили ошибку.
Ищите лишнюю или отсутствующую фигурную скобку теперь в своем коде. В html редакторе это легко выявить сворачивая конструкции или просто отмечая одну из скобок, а редактор отметит парную ей.

  Ответить  
 
 автор: kyljapin   (15.09.2013 в 19:42)   письмо автору
 
   для: 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 то есть не берет эти переменные для отправки на емайл. Что может быть?

  Ответить  
 
 автор: confirm   (15.09.2013 в 20:13)   письмо автору
 
   для: kyljapin   (15.09.2013 в 19:42)
 

Вы новичок, и не смотря на это, после того как я показал как и объяснил почему, вы вносите свою правку - выносите вывод сообщения из условия. Вы понимаете, что это означает, что фактически неполучение этого сообщения (соблюдения условий заполнения его) все равно будет сопровождаться сообщением пользователю о его получении?
И зачем exit? После этого есть еще код?

У вас не определены переменные $phone и $message, поэтому на почту они и не приходят. Это вообще-то должно вызвать сообщение (если не заблокирован их вывод), и как следствие вывод ошибки при передаче заголовка.
Замените $phone и $message на $_POST['phone'] и $_POST['message'] соответственно.

  Ответить  
 
 автор: kyljapin   (15.09.2013 в 20:17)   письмо автору
 
   для: confirm   (15.09.2013 в 20:13)
 

Менял выдает ошибку Parse error: syntax error, unexpected T_STRING in /home/h9656/data/w
а эти переменные $phone $message берутся из сообщения агрегатора к этому обработчику

  Ответить  
 
 автор: confirm   (15.09.2013 в 20:21)   письмо автору
 
   для: kyljapin   (15.09.2013 в 20:17)
 

Ну так если вставлять лишь бы вставить, то конечно будет ошибка:
<?
$messag 
'Телефон абонента '.$_POST['phone']."\n текст SMS: ".$_POST['message'];

  Ответить  
 
 автор: kyljapin   (15.09.2013 в 20:41)   письмо автору
 
   для: confirm   (15.09.2013 в 20:21)
 

Спасибо все получилось, и не судите строго.

  Ответить  
 
 автор: confirm   (15.09.2013 в 20:51)   письмо автору
 
   для: kyljapin   (15.09.2013 в 20:41)
 

Я не судья. )

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования