Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Проблема с mail

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
KEFIR4UK
Отправлено: 12 Января, 2015 - 01:28:57
Post Id



Частый гость


Покинул форум
Сообщений всего: 161
Дата рег-ции: Апр. 2014  


Помог: 0 раз(а)




Доброго времени суток. Столкнулся с проблемой не отсылается письмо при смене пароля, вот собственно скрипт:
PHP:
скопировать код в буфер обмена
  1.  
  2. require_once("db.php");
  3. require_once("class.php");
  4. if(isset($_POST['old_password']) && !empty($_POST['old_password']) && isset($_POST['new_password']) && !empty($_POST['new_password'])){
  5.   if(md5($_POST['old_password']) == ($_COOKIE['user']['password'])){
  6.     $obj = new Validate($_COOKIE['user']['email'],$_POST['new_password']);
  7.     $obj->validate_password();
  8.     if($obj->validate_password()==true){
  9.       $new_password =md5($_POST['new_password']);
  10.       $stmt = $db->prepare("UPDATE test SET password =? WHERE id=?");
  11.       $stmt->bindParam(1,$new_password);
  12.       $stmt->bindParam(2,$_COOKIE['user']['id']);
  13.       $rows = $stmt->execute();
  14.       if($rows){
  15.         $subject = 'Смена пароля — rentkyiv.com';
  16.         $headers = 'Content-Type: text/html; charset="utf-8"'."\r\n";
  17.         $header = 'rentkyiv.com';
  18.         $message = 'Привет,'.$_COOKIE['user']['email'] .'!          Привет!' .$rows['email'] .'Твой новый пароль:'.$_POST['new_password'].'
  19.          С уважением, http://rentkyiv.com';
  20.         mail($_COOKIE['user']['email'],$subject,$message,$header,$headers);
  21.         echo "Пароль успешно изменен";
  22.         setcookie("user[password]",$_POST['new_password']);
  23.         header("Refresh:3;url=index.php");
  24.       }else{
  25.         echo "Случилась непредвиденная ошибка,попробуйте еще раз";
  26.         header("Refresh:3;url=". $_SERVER['HTTP_REFERER']."");
  27.       }
  28.     }
  29.   }else{
  30.     echo "Не верный текущий пароль!";
  31.     header("Refresh:3;url=". $_SERVER['HTTP_REFERER']."");
  32.   }
  33. }else{
  34.   echo "Введите пароли!";
  35.   header("Refresh:5;url=my_account.php");
  36. }
  37.  

Сам пароль меняется, выводиться сообщение о том что пароль изменился,то есть условие сработало но почта не отправляется. Закоментировал весь код и в самом начале отослал письмо - сработало.В чем проблема понять не могу.
 
 Top
KingStar
Отправлено: 12 Января, 2015 - 22:42:40
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


Помог: 69 раз(а)




При отправке письма, и передаче необязательного параметра, в твоем случае



нужно дополнительно передать заголовок From в переменной

PHP:
скопировать код в буфер обмена
  1. $headers = 'Content-Type: text/html; charset="utf-8"'."\r\n";

(Добавление)
типа так

PHP:
скопировать код в буфер обмена
  1. $headers = 'Content-Type: text/html; charset="utf-8"'."\r\n".
  2.     'From: '.$header."\r\n";


-----
То что программа работает, не означает что она написана правильно!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB