Если оператор не работает в сервисе phpmailer - PullRequest
0 голосов
/ 18 мая 2019

Я устанавливаю службу phpmailer в которой я просто отправляю ссылку для доступа некоторым пользователям.Сервис работает отлично.Моя проблема возникает, когда я устанавливаю оператор IF, и он не проверяется.Я просто хочу, чтобы он мог войти в проверку if.Проверка выполняется, когда $ result == 's' имеет значение true, отправляет письмо, иначе ($ result == 'n') ничего не делает.

Я много исследовал эту ошибку, очевидно, решение не найдено.Это для мобильного приложения, встроенного в ionic 3 со службами машинописи и php на сервере Apache.Также я использую соединение с БД MySQL.

{
<?php

$postdata = file_get_contents("php://input");
$request = json_decode($postdata);
header('Content-type: application/json');
header("Access-Control-Allow-Origin: *");
header('Access-Control-Allow-Headers: X-Requested-With, content-type, access-control-allow-origin, access-control-allow-methods, access-control-allow-headers');

include('conecction.php');


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

require 'phpMailer/src/Exception.php';
require 'phpMailer/src/PHPMailer.php';
require 'phpMailer/src/SMTP.php';


$id =$request->id;


$counting = count($request->people);

for($i=0;$i<$counting ;$i++){

    $name=$request->people[$i]->name;
    $email=$request->people[$i]->mail;
    $hash=md5($id.$email);

$sql="select assisted from assistance where mail= '$email' and idmeeting = '$id'";

$result = $conn->query($sql);

 if($result == 's'){

$mail = new PHPMailer;

$mail->SMTPDebug = 4; 

$mail->setFrom('noresponder@Prueba.com', 'Prueba MeetCoomeva');
$mail->addAddress($email, $name); 


$mail->Subject = 'Subject'; 

$mail->Body    = "Message Body "

}
if ($mail->send()) {
 $response['message']="Sent.";
} else { 
   echo "Sending error: " . $mail->ErrorInfo;
}
}
echo json_encode($response);
?>
}

Я хочу, чтобы служба составляла и отправляла почту, когда она произвела проверку $ result == 's'

Я получаю500 внутренняя ошибка сервера только этим.Я просто хочу, чтобы он отправлял почту, когда проверка правильна, или ничего не делал, когда входил в другое.

1 Ответ

0 голосов
/ 18 мая 2019

Этого недостаточно:

$sql="select assisted from assistance where mail= '$email' and idmeeting = '$id'";

$result = $conn->query($sql);

 if($result == 's'){

$result содержит экземпляр mysqli_result , а не простую строку, поэтому сравнение с s никогда не будет совпадать. Вам нужно сначала извлечь строку из набора результатов, например:

$sql="select assisted from assistance where mail= '$email' and idmeeting = '$id'";

$result = $conn->query($sql);
$row = $result->fetch_row();

 if($row[0] == 's'){
...