Ce site utilise des cookies pour améliorer uniquement votre expérience utilisateur.
Vous pouvez lire à tout moment comment nous utilisons les cookies sur le site.
Bonsoir,
J'ai un problème avec le code lorsque j'ai rempli les champs des formulaire et ensuite je clique sur le bouton "Envoyer" j'obtiens les erreurs :
Warning: Use of undefined constant FILTER_VALIDATION_EMAIL - assumed 'FILTER_VALIDATION_EMAIL' (this will throw an Error in a future version of PHP) in C:\xampp\htdocs\mail\tuto mail\indeex.php on line 25
Warning: filter_var() expects parameter 2 to be int, string given in C:\xampp\htdocs\mail\tuto mail\indeex.php on line 25
Au-dessus de formulaire il y a une erreur qu'il m'affiche " Ceci n'est pas une adresse mail " alors que j'ai fait entrer mon adresse mail. Je pense qu'il y a un problème avec cette ligne code :
if (!filter_var(@$email, FILTER_VALIDATION_EMAIL)) {
# code...
$error= "Ceci n'est pas une adressee mail";
}
Voici le code :
<?php
require 'phpmailer/PHPMailerAutoload.php';
$error="";
$flag_attachement=false;
//var_dump(($_POST));
if (isset($_POST['submit']) and !empty($_POST['submit'])) {
# code...
if (!empty($_POST['email']) or !empty($_POST['Objet'])) {
$email=test_input($_POST['email']);
/*$objet = test_input($_POST['objet']);*/
if (isset($_POST['objet'])) {
$objet = $_POST['objet'];
}
$message=test_input($_POST['message']);
if (!filter_var($email, FILTER_VALIDATION_EMAIL)) {
# code...
$error= "Ceci n'est pas une adressee mail";
}else{
# code...
if ($_FILES['attachement']['erro²r']==0) {
if($_FILES['attachement']['size'] <=5000000){
$infos_fichier=pathinfo($_FILES['attachement']['name']);
$extension_fichier=$infos_fichier['extension'];
$extension_autorisees=array('jpeg', 'jpg', 'png', 'doc', 'odt', 'pdf');
$flag_attachement=true;
if(in_array($extension_fichier, $extension_autorisses)){
$name_file=$_FILES['attachement']['name'];
$chemin="piece_jointe".basename($name_file);
move_uploaded_file($_FILES['attachement']['tmp_name'], $chemin);
//eenvoie du mail
$mail=new PHPMailer();
$mail->addAddress('epenyblaise@yahoo.fr', 'contact');
$mail->setFrom('Root', 'Administrateur');
$mail->subject='Nouveau mail';
$mail->isHTML(true);
$object_mail="Re".$object;
$mail->addReplyTo($email,'$object_mail');
$mail->Body='
<html>
<head>
<meta charset="utf-8"
</head>
<body>
<h1> Vous avez recu un message </h1>
<div>
Email: '.$email.'<br/>
Password:'.$password.'<br/>
Objet:'.$object.'<br/><br/>
'.nl2br($message).' <br/>
</div>
</body>
</html>
';
if($flag_attachement==true){
$mail->attachement($chemin, $name_file);
}
if($mail->send()){
$error="envoyeé avec sucès";
}else{
$error="Echec d'envoi.";
}
}else{
$error="fichier non prise en compte";
}
}
else{
$error="fichier trop de volumineux";
}
}else{
$error="une erreur est survenue avec la pièce jointe";
}
}
# code...
}else{
$error= "Vous devez compléter tout les champs.";
}
}
function test_input($data){
$data=trim($data);
$data=stripslashes($data);
$data=htmlspecialchars($data);
return $data;
}
?>
Comment faire pour corriger cette erreur ?
Merci d'avance pour vos réponses.
Salut,
bases-toi sur ce code issu de la doc de PHP :
<?php
$email_a = 'joe@example.com';
$email_b = 'bogus';
if (filter_var($email_a, FILTER_VALIDATE_EMAIL)) {
echo "L'adresse email '$email_a' est considérée comme valide.";
}
if (filter_var($email_b, FILTER_VALIDATE_EMAIL)) {
echo "L'adresse email '$email_b' est considérée comme valide.";
} else {
echo "L'adresse email '$email_b' est considérée comme invalide.";
}
?>
Dans ton filter_var, tu avais oublié de spécifier ta variable de ton champs Mail.
Aussi, cette méthode de vérification n'est pas forcément idéale, je te conseille d'effectuer une vérification grâce à un regex 😉
Bonjour @Doppler,
Dans filter_var j'ai ajouté la variable d'un champ mail l'erreur que j'ai eu avant n'affiche plus dans le navigateur.
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "L'adresse email '$email' est considérée comme valide.";
}
Je te remercie pour ton aide.
Salut,
bases-toi sur ce code issu de la doc de PHP :
<?php
$email_a = 'joe@example.com';
$email_b = 'bogus';
if (filter_var($email_a, FILTER_VALIDATE_EMAIL)) {
echo "L'adresse email '$email_a' est considérée comme valide.";
}
if (filter_var($email_b, FILTER_VALIDATE_EMAIL)) {
echo "L'adresse email '$email_b' est considérée comme valide.";
} else {
echo "L'adresse email '$email_b' est considérée comme invalide.";
}
?>
Dans ton filter_var, tu avais oublié de spécifier ta variable de ton champs Mail.
Aussi, cette méthode de vérification n'est pas forcément idéale, je te conseille d'effectuer une vérification grâce à un regex 😉