Contact PHP

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Contact PHP

Re: Contact PHP

par Ryle » 20 mai 2021, 22:53

Salutations !

Difficile de pouvoir t'aider avec "ça ne fonctionne pas" pour seul symptôme :)

Qu'est-ce qui se passe ? Qu'est-ce qui ne fonctionne pas ? Y a-t-il un message d'erreur ? Quelles sont les valeurs de tes variables ? Correspondent elles à ce que tu attends ? ...

A première vue, il y a déjà un problème ici :
$alert = 'L'adresse '.$email.' n'est pas valide';
Si tu délimites une chaine de caractères avec des apostrophes, alors il faut protéger les apostrophes qu'elle contient afin que php ne considère pas qu'il s'agit de la fin de la chaine. Autre option, tu peux délimiter la chaine avec des guillemets (pas besoin dans ce cas d'échapper les apostrophes, mais il faudra échapper les guillemets éventuelles :))

Contact PHP

par GERYGOL » 20 mai 2021, 10:11

Bonjour a tous,
voila je ne m'en sort pas :

sur mon site j'ai le code HTML suivant et une page PHP contact.php rattaché a ce code pour l'envoi de mail.
Mais cela ne fonctionne pas.

Merci pour votre aide.
HTML:
<form id="contactform" class="row" action="contact.php" name="contactform" method="post">
                        <fieldset class="row-fluid">
                           <div class="col-lg-6 col-md-6 col-sm-6 col-xs-12">
                              <input type="text" name="nom" id="nom" class="form-control" placeholder="Nom">
                           </div>
                           <div class="col-lg-6 col-md-6 col-sm-6 col-xs-12">
                              <input type="text" name="prenom" id="prenom" class="form-control" placeholder="Prénom">
                           </div>
                           <div class="col-lg-6 col-md-6 col-sm-6 col-xs-12">
                              <input type="email" name="email" id="email" class="form-control" placeholder="Email">
                           </div>
                           <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
                              <input type="text" name="objet" id="objet" class="form-control" placeholder="Objet">
                           </div>
                           <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
                              <textarea class="form-control" name="message" id="message" rows="6" placeholder="Message"></textarea>
                           </div>
                           <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 text-center">
                              <button type="submit" value="SEND" id="submit" class="btn btn-light btn-radius btn-brd grd1 btn-block">Envoyer</button>
                           </div>
                        </fieldset>
                     </form>

PHP:
<?php
/* Récupération des informations du formulaire*/
if (get_magic_quotes_gpc())
{
 $nom = stripslashes(trim($_POST['nom']));
 $prenom = stripslashes(trim($_POST['prenom']));
 $email = stripslashes(trim($_POST['email']));
 $objet = stripslashes(trim($_POST['objet']));
 $message = stripslashes(trim($_POST['message']));
}     
else      
{
 $nom = trim($_POST['nom']);
 $prenom = trim($_POST['prenom']);
 $email = trim($_POST['email']);
 $objet = trim($_POST['objet']);
 $message = trim($_POST['message']);
}
/*Vérifie si l'adresse mail est au bon format */
 $regex_mail = '/^[-+.w]{1,64}@[-.w]{1,64}.[-.w]{2,6}$/i'; 
 /*Verifie qu il n y est pas d en tête dans les données*/
$regex_head = '/[nr]/';   
/*Vérifie qu il n y est pas d erreur dans adresse mail*/
 if (!preg_match($regex_mail, $email))
 {
 $alert = 'L'adresse '.$email.' n'est pas valide';      
 }
 else
{ 
 $courriel = 1;
}   
/* On affiche l'erreur s'il y en a une */ 
if (!empty($alert))
{
 $courriel = 0;
}     
/* On vérifie qu'il n'y a aucun header dans les champs */ 
if (preg_match($regex_head, $nom)
 || preg_match($regex_head, $prenom)
 || preg_match($regex_head, $email)
 || preg_match($regex_head, $objet)
 || preg_match($regex_head, $message))
{  
 $alert = 'En-têtes interdites dans les champs du formulaire'; 
}
else
{ 
 $header = 1;
}   
/* On affiche l'erreur s'il y en a une */ 
if (!empty($alert))
{
 $header = 0;
}
if (empty($prenom) 
 || empty($nom) 
 || empty($email))
 || empty($objet))
 || empty($message))
{  
 $alert = 'Tous les champs doivent être renseignés';
} 
else
{  
 $renseigne = 1;
}   
/* On affiche l'erreur s'il y en a une */ 
if (!empty($alert))
{
 $renseigne = 0;
}
/* Si les variables sont bonne */
if ($renseigne == 1 AND $header == 1 AND $courriel == 1)
{
/*Envoi du mail*/

/*Le destinataire*/
$to="[email protected]";

/*Le sujet du message qui apparaitra*/
$sujet="Message depuis le site";
$msg = '';
/*Le message en lui même*/
/*$msg = 'Mail envoye depuis le site' "rnrn";*/
$msg .= 'Nom : '.$nom."rnrn";
$msg .= 'Prenom : '.$prenom."rnrn";
$msg .= 'Mail : '.$email."rnrn";
$msg .= 'Objet : '.$objet."rnrn";
$msg .= 'Message : '.$message."rnrn";
/*Les en-têtes du mail*/
$headers = 'From: MESSAGE DU SITE GDMAC<[email protected]>'."rn";
$headers .= "rn";
/*L'envoi du mail - Et page de redirection*/
mail($to, $sujet, $msg, $headers);
header('Location:http://xxxxxx.fr');
}
else
{
header('Location:http://xxxxxx.fr');
}
?>