@antonio0226

Почему вылетает ошибка Call to a member function?

Привет всем. Нужно сделать рассылку заявок. Использую PHPmailer

Всего три страницы с заявками. Решил сделать общий функционал в одном файле, к которому будет подключаться mail.php, в mail.php будет проверятся с какой формы нажата кнопка и далее будет вызываться нужная функция. Все бы хорошо, но сразу ошибка.
Вот код
<?php
require ('autoload.php');
?>
<?php

	use PHPMailer\PHPMailer\PHPMailer;
	use PHPMailer\PHPMailer\Exception;

	function osagoFunc(){
			if(isset($check)){
				mailFunc('Новая заявка осаго',$contact,$msg,'Страховка без ограничений количества водителей');
			}else{
				mailFunc('Новая заявка осаго',$contact,$msg,'нет');
			}
	}

	$contact = htmlspecialchars($_POST['contact']);
	$msg = htmlspecialchars($_POST['msg']);
	$check = $_POST['somecheck'];
	
	$mail = new PHPMailer(true);

	



	function mailFunc($subj,$cont,$ms,$chec){
		foreach ($_FILES["photo_file"]["error"] as $key => $error) {
		    if ($error == UPLOAD_ERR_OK) {
					
		        $tmp_name = $_FILES["photo_file"]["tmp_name"][$key];
		        $name = basename($_FILES["photo_file"]["name"][$key]);
		        move_uploaded_file($tmp_name, "photo/$name");
		        	$mail->setFrom('osago@example.com', 'Mailer');
					$mail->addAddress('somemail@yandex.ru', 'John Doe');
				    $mail->Subject = $subj;
				    $mail->msgHTML('Контактная информация : '.$cont.' Текст сообщения : '.$ms.' Дополнительная информация: '.$chec);
				    $mail->addAttachment('photo/'.$name);
		 	 }
		}
				    $mail->send();
		
	}
	
?>

Ошибка Uncaught Error: Call to a member function setFrom() 25 строчка.
Я так понимаю не правильная область видимости. В чем проблема?
  • Вопрос задан
  • 1222 просмотра
Пригласить эксперта
Ответы на вопрос 1
проблема в области видимости, в mailFunc у вас нет $mail
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы