conditions avec PhpMailer

Petit nouveau ! | 2 Messages

13 avr. 2019, 17:18

Bonjour à tous,

J'ai créé un formulaire de contact avec traitement phpMailer. Le formulaire contient 3 champs et 2 pièces jointes.
Le problème que je n'arrive pas à résoudre est que lorsque le formulaire est soumis il affiche : "extension non valide" ou "résultat de l'opération:faux" et donc le mail ne part. Sauf que mon echo "<h1>Message envoyé</h1>"; s'affiche quand même.
Pourriez-vous m'aider à ce sujet ?
Merci

Voici le tout :

<form method="post" action="emploi.php" enctype="multipart/form-data">

<div class="prod1">
<div>
<label>Nom Prénom<span class="obligatoire">*</span></label>
<input type="text" name="nom" required/>
</div>

<div>
<label>Email<span class="obligatoire">*</span></label>
<input type="email" name="email" required/>
</div>

<div>
<label>Téléphone<span class="obligatoire">*</span></label>
<input type="text" name="ref" required/>
</div>

</div>

<div class="prod1">
<div>
<label for="lettre">Lettre de motivation (PDF) :</label>
<input type="file" name="lettre" id="lettre" style="font-size:0.8em"><br />
</div>

<div>
<label for="cv">Curriculum vitae (PDF) :</label>
<input type="file" name="cv" id="cv" style="font-size:0.8em"><br />
</div>

</div>

<div class="align-center"><span class="obligatoire">*</span><span>champs obligatoires</span></div>


<?php
include("pds_captcha.php");
echo pdscaptcha("question");
?>

<input type="submit" name="submit" value="Envoyer"/>

</form>



PHP :
<?php


require "PHPMailer/class.phpmailer.php";

$mail = new PHPMailer;
$mail->IsMail ();
$mail->ClearAddresses ();
$mail->AddAddress ("XXXXXX");
$mail->CharSet = 'UTF-8';
$mail->isHTML(true); // définir le format email en HTML
$mail->Subject = 'Candidature de '. $_POST['nom'] .'';
$mail->Body = 'Une personne a postulé via le site internet :
<ul>
<li>Nom : '. $_POST['nom'] .'</li>
<li>Email : '. $_POST['email'] .'</li>
<li>Téléphone : '. $_POST['ref'] .'</li>
</ul>';

foreach($_FILES as $fichier)
{
$mail->AddAttachment($fichier['tmp_name'], $fichier['name']);
}

$file = $_FILES["lettre"]["name"];
$file = $_FILES["cv"]["name"];
$extensions_valides = array('pdf','PDF');
$extension = pathinfo($file, PATHINFO_EXTENSION);
if (!in_array($extension,$extensions_valides)){
echo "<h1>Fichiers PDF svp</h1>";
}

include("pds_captcha.php");
if (!pdscaptcha($_POST)){
echo "<h1>Vérifier le résultat</h1>";
}
}
else ($mail->Send()){
echo "<h1>Message envoyé</h1>";
}

?>

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

14 avr. 2019, 15:19

Les messages d'erreurs que tu cites ne sont pas dans le code que tu as indiqué.

Mais d'une façon générale si tu n'arrêtes pas le traitement en cas d'erreur, c'est normal que le traitement continue :D
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 2 Messages

14 avr. 2019, 15:33

Merci @rthur pour ta réponse. Peux tu me donner un exemple précis pour illustrer tes dires ? Je débute et la je coince...