J'ai cette fonction très simple ...retour des valeurs négatives
function send_mail($to, $from, $from_mail, $subject, $message) {
if (empty($from) || empty($from_mail) || empty($subject) || empty($message)) {
return -1;
}
if (isset ($_SESSION['last_mailed']))
{
if ($_SESSION['last_mailed'] + 180 < time())
return -2;
}
$_SESSION['last_mailed'] = time();
if (!validEmail($from_mail))
return -3;
$from = strip_mail_headers_single($from);
$from_mail = strip_mail_headers_single($from_mail);
$subject = strip_mail_headers_single($subject);
$message = strip_mail_headers_multi($message);
return mail($to, $subject, $message, "From: $from <$from_mail>\r\n");
}
if (!empty($_POST)) {
$result = send_mail($mail_to, $_POST['from'], $_POST['from_mail'], $_POST['subject'], $_POST['message']);
if ($result == -1)
{
echo "<p>You need to complete all the fields.</p>";
}
elseif ($result == -2)
{
echo "<p>You can only send one mail every three minutes.</p>";
}
elseif ($result == -3)
{
echo "<p>Please enter a valid email address.</p>";
}
else
{
echo "<p>Mail sent successfully!</p>";
}
}
Je reçois des résultats étranges. La fonction mail()
renvoie, le résultat est défini sur 1 et le courrier est envoyé. Cependant, "if ($result == -1)
" est évalué à vrai pour une raison quelconque et le message d'erreur correspondant est imprimé. Pourquoi est-ce? Des idées?
Est-ce que "si ($ result === -1)" donne le même résultat? – palindrom
if (1 == 1) // vrai if (1 == "1") // vrai if (1 === 1) // vrai if (1 === "1") // false – madcolor