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
Форумы портала PHP.SU :: Версия для печати :: Проблема с mail
Форумы портала PHP.SU » » Вопросы новичков » Проблема с mail

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

1. KEFIR4UK - 12 Января, 2015 - 01:28:57 - перейти к сообщению
Доброго времени суток. Столкнулся с проблемой не отсылается письмо при смене пароля, вот собственно скрипт:
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.  

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



нужно дополнительно передать заголовок 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";

 

Powered by ExBB FM 1.0 RC1