Formulaire de contact non fonctionnel
Horizon355
Messages postés
61
Date d'inscription
Statut
Membre
Dernière intervention
-
mrphp Messages postés 28 Date d'inscription Statut Membre Dernière intervention -
mrphp Messages postés 28 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je rencontre actuellement un soucis avec le php de mon formulaire de contact...
C'est un formulaire basique et j'aimerais récupérer les données sur ma boite perso
voici le code :
<?php
define("mon mail", '');
error_reporting (E_ALL ^ E_NOTICE);
//////////////////////////////////////////////////////
function ValidateEmail($email)
{
$regex = '/([a-z0-9_.-]+)'. # name
'@'. # at
'([a-z0-9.-]+){2,255}'. # domain & possibly subdomains
'.'. # period
'([a-z]+){2,10}/i'; # domain extension
if($email == '')
return false;
else
$eregi = preg_replace($regex, '', $email);
return empty($eregi) ? true : false;
}
//////////////////////////////////////////////////////
$post = (!empty($_POST)) ? true : false;
if($post)
{
$nom = stripslashes($_POST['nom']);
$prenom = stripslashes($_POST['prenom']);
$email = trim($_POST['email']);
$organisme = stripslashes($_POST['organisme']);
$tel = stripslashes($_POST['tel']);
$message = stripslashes($_POST['message']);
$error = '';
// Check name
if(!$nom || $nom == "Nom*")
$error .= 'Veuillez entrer votre nom.<br />';
// Check email
if(!$email || $email == "Email*")
$error .= 'Veuillez entrer une adresse e-mail.<br />';
if($email && !ValidateEmail($email))
$error .= 'Veuillez entrer une adresse e-mail valide.<br />';
// Check message
if(!$message)
$error .= "Veuillez entrer votre message.<br />";
if(!$error)
{
$mail = mail("mon mail", $organisme, $message, $tel, $prenom,
"From: ".$nom." <".$email.">\r\n"
."Reply-To: ".$email."\r\n"
."X-Mailer: PHP/" . phpversion());
if($mail)
echo 'OK';
}
else
echo '<div class="formstatuserror">'.$error.'</div>';
}
?>
Où est le problème ?
Pour info, j'ai une erreur au niveau de la récupération du mail (j'ai remplacé mon véritable mail par "mon mail")
Cordialement
Je rencontre actuellement un soucis avec le php de mon formulaire de contact...
C'est un formulaire basique et j'aimerais récupérer les données sur ma boite perso
voici le code :
<?php
define("mon mail", '');
error_reporting (E_ALL ^ E_NOTICE);
//////////////////////////////////////////////////////
function ValidateEmail($email)
{
$regex = '/([a-z0-9_.-]+)'. # name
'@'. # at
'([a-z0-9.-]+){2,255}'. # domain & possibly subdomains
'.'. # period
'([a-z]+){2,10}/i'; # domain extension
if($email == '')
return false;
else
$eregi = preg_replace($regex, '', $email);
return empty($eregi) ? true : false;
}
//////////////////////////////////////////////////////
$post = (!empty($_POST)) ? true : false;
if($post)
{
$nom = stripslashes($_POST['nom']);
$prenom = stripslashes($_POST['prenom']);
$email = trim($_POST['email']);
$organisme = stripslashes($_POST['organisme']);
$tel = stripslashes($_POST['tel']);
$message = stripslashes($_POST['message']);
$error = '';
// Check name
if(!$nom || $nom == "Nom*")
$error .= 'Veuillez entrer votre nom.<br />';
// Check email
if(!$email || $email == "Email*")
$error .= 'Veuillez entrer une adresse e-mail.<br />';
if($email && !ValidateEmail($email))
$error .= 'Veuillez entrer une adresse e-mail valide.<br />';
// Check message
if(!$message)
$error .= "Veuillez entrer votre message.<br />";
if(!$error)
{
$mail = mail("mon mail", $organisme, $message, $tel, $prenom,
"From: ".$nom." <".$email.">\r\n"
."Reply-To: ".$email."\r\n"
."X-Mailer: PHP/" . phpversion());
if($mail)
echo 'OK';
}
else
echo '<div class="formstatuserror">'.$error.'</div>';
}
?>
Où est le problème ?
Pour info, j'ai une erreur au niveau de la récupération du mail (j'ai remplacé mon véritable mail par "mon mail")
Cordialement
A voir également:
- Formulaire de contact non fonctionnel
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook compte désactivé - Guide
- Formulaire de reclamation instagram - Guide
- Formulaire de contact le bon coin introuvable ✓ - Forum Vos droits sur internet
- Recuperer contact carte sim - Guide
3 réponses
Bonjour,
>> Pour info, j'ai une erreur au niveau de la récupération du mail (j'ai remplacé mon véritable mail par "mon mail")
Quelle est l'erreur retournée par la fonction mail ou par PHP?
Cdlt.
>> Pour info, j'ai une erreur au niveau de la récupération du mail (j'ai remplacé mon véritable mail par "mon mail")
Quelle est l'erreur retournée par la fonction mail ou par PHP?
Cdlt.
( ! ) Warning: mail() expects at most 5 parameters, 6 given in C:\UwAmp\www\Mon site\php\send.php on line 62
Call Stack
# Time Memory Function Location
1 0.0591 349792 {main}( ) ..\send.php:0
2 0.1102 351120 mail ( ) ..\send.php:62
La line 62 c'est $mail
Call Stack
# Time Memory Function Location
1 0.0591 349792 {main}( ) ..\send.php:0
2 0.1102 351120 mail ( ) ..\send.php:62
La line 62 c'est $mail
Ben le message est explicite (même si il est en anglais), la fonction PHP mail() accepte 5 paramètres au maximum, tu en donnes 6 donc ça ne passe pas!
Je te laisse lire la doc officielle à ce sujet et je t'invites à la lire régulièrement lorsque tu as un souci dans l'utilisation d'une fonction PHP quelle qu'elle soit...
https://www.php.net/manual/fr/function.mail.php
Cdlt.
Je te laisse lire la doc officielle à ce sujet et je t'invites à la lire régulièrement lorsque tu as un souci dans l'utilisation d'une fonction PHP quelle qu'elle soit...
https://www.php.net/manual/fr/function.mail.php
Cdlt.
Bonsoir,
>> Il n'y a aucun moyen de pouvoir récupérer plus de 5 paramètres ?
Ben non, 5 paramètres c'est largement suffisant! C'est tout simplement toi qui ne sait pas organiser ton script pour récupérer TOUTES les infos du formulaire dont tu as besoin. Par exemple :
Cdlt.
>> Il n'y a aucun moyen de pouvoir récupérer plus de 5 paramètres ?
Ben non, 5 paramètres c'est largement suffisant! C'est tout simplement toi qui ne sait pas organiser ton script pour récupérer TOUTES les infos du formulaire dont tu as besoin. Par exemple :
<?php define('TO', 'destinataire@yourdomain.com'); error_reporting (E_ALL ^ E_NOTICE); function ValidateEmail($email) { $regex = '/([a-z0-9_.-]+)'. # name '@'. # at '([a-z0-9.-]+){2,255}'. # domain & possibly subdomains '.'. # period '([a-z]+){2,10}/i'; # domain extension if($email == '') return false; else $eregi = preg_replace($regex, '', $email); return empty($eregi) ? true : false; } $error = ''; // Check name if(!empty($_POST['nom']) || $_POST['nom'] != "Nom*") { $nom = stripslashes($_POST['nom']); } else { $error .= 'Veuillez entrer votre nom.<br />'; } if(!empty($_POST['prenom']) || $_POST['prenom'] != "Prénom*") { $prenom = stripslashes($_POST['prenom']); } else { $error .= 'Veuillez entrer votre prénom.<br />'; } // Check email if(!empty($_POST['email']) || $_POST['email'] != "Email*" || ValidateEmail($_POST['email'])) { $email = trim($_POST['email']); } else { $error .= 'Veuillez entrer une adresse e-mail.<br />'; } // Check message if(!empty($_POST['message'])) { // Objet du message $objet = "Un message envoyé depuis votre site web"; $message = "Un message de ".$nom." ".$prenom."\r\n"; if(!empty($_POST['organisme'])) { $message .= "Organisme: ".stripslashes($_POST['organisme'])."\r\n"; } else { $message .= "Organisme: aucun organisme spécifié.\r\n"; } if(!empty($_POST['tel'])) { $message .= "Téléphone: ".stripslashes($_POST['tel'])."\r\n"; } else { $message .= "Téléphone: aucun numéro renseigné.\r\n"; } $message .= stripslashes($_POST['message'])."\r\n"; //Header du mail $header = "From: ".$nom." <".$email.">\r\n"; $header .= "Reply-To: ".$email."\r\n"; $header .= "MIME-Version: 1.0\r\n"; $header .= "Content-type: text/plain; charset=iso-8859-1\r\n"; $header .= "Content-Transfer-Encoding: 8bit\r\n"; $header .= "X-Mailer: PHP/".phpversion()."\r\n"; } else { $error .= "Veuillez écrire votre message.<br />"; } if(empty($error)) { if(mail(TO, $objet, $message, $header)) { echo 'Votre message a été envoyé avec succès.'; } else { echo '<div class="formstatuserror">Un incident technique a empêché l'envoi de votre message. Veuillez réessayer un peu plus tard.</div>'; } } else { echo '<div class="formstatuserror">'.$error.'</div>'; } ?>
Cdlt.
Bonsoir,
J'ai essayé de faire fonctionner le formulaire et je retrouve une nouvelle erreur, différente cette fois :
Warning: mail() [<a href='function.mail'>function.mail</a>]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\UwAmp\www\Mon site\php\send.php on line 71
D'après le début de l'erreur, ça viendrait de mon ordinateur et pas du code
Sinon, comment faire avec ini_set() à la ligne 71 comme précisé ?
Dois-je faire un ini_set($objet, $message, $header) ?
J'ai quand même été voir sur php.net mais je ne saisis pas bien le problème
Cordialement
J'ai essayé de faire fonctionner le formulaire et je retrouve une nouvelle erreur, différente cette fois :
Warning: mail() [<a href='function.mail'>function.mail</a>]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\UwAmp\www\Mon site\php\send.php on line 71
D'après le début de l'erreur, ça viendrait de mon ordinateur et pas du code
Sinon, comment faire avec ini_set() à la ligne 71 comme précisé ?
Dois-je faire un ini_set($objet, $message, $header) ?
J'ai quand même été voir sur php.net mais je ne saisis pas bien le problème
Cordialement
Voici un générateur de formulaire formidable qui donne du code qui marche super:
http://www.ge-net.ch/page/rw-wfco-owb-0.html
Important: ta page où tu mettra le code doit avoir l'extension php par exemple
page.php si c'est une page page.html le code ne sera pas interpreté
bonne chance
http://www.ge-net.ch/page/rw-wfco-owb-0.html
Important: ta page où tu mettra le code doit avoir l'extension php par exemple
page.php si c'est une page page.html le code ne sera pas interpreté
bonne chance