Vérification code PHP, svp !

Résolu/Fermé
gmatg - Modifié le 7 mai 2020 à 16:07
 gmatg - 9 mai 2020 à 13:24
Bonjour à tous !
Je dois mettre en ligne mon site web le plus vite possible mais je ne sais pas si mon formulaire de contact fonctionne (normalement i fonctionne mais ...). J'ai essayer sur un serveur local, mais impossible.
J'aimerai vraiment que quelqu’un vérifie mon code !!!!! SVP !!
Un énorme merci à vous tous !!

Mon code :
   <[https://www.commentcamarche.net/contents/242-introduction-au-dynamic-html-dhtml div] class="container">
      <form action="envoie.php" method="post">
    
        <label for="fname">Nom et prénom</label>
        <input class="nom" type="text" id="nom" name="nom" placeholder="Votre nom" required>
    
        <label for="lname">E-mail</label>
        <input type="text" id="mail" name="mail" placeholder="ex: ***@***" required>

        <label for="lname">Objet</label>
        <input type="text" id="objet" name="objet" placeholder="Objet de votre demande" required>
    
        <label for="subject">Message</label>
        <textarea id="message" name="message" placeholder="Votre message ..." style="height:200px" required></textarea>

        <input type="reset" value="réinitialiser"></input>
    
        <input type="submit" value="Envoyer"></input>
    
      </form>
    </div>


<?php

$destinataire = '***@***';
 
$copie = 'oui';
 
$message_envoye = "Votre message nous est bien parvenu, l'équipe vous répondera le plus vite possible. !";
$retour_accueil = "Pour revenir à <a href=\"Accueil.html\">l'accueil</a>"
$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";
 

$message_erreur_formulaire = "Vous devez d'abord <a href=\"contact.html\">envoyer et remplir le formulaire</a>.";
$message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";


if (!isset($_POST['envoi']))
{

 echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
 echo '<img src="" alt="image message non envoyé">';
}
else
{

 function Rec($text)
 {
  $text = htmlspecialchars(trim($text), ENT_QUOTES);
  if (1 === get_magic_quotes_gpc())
  {
   $text = stripslashes($text);
  }
 
  $text = nl2br($text);
  return $text;
 };

 function IsEmail($email)
 {
  $value = preg_match('/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_-]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/', $email);
  return (($value === 0) || ($value === false)) ? false : true;
 }
 
 $nom     = (isset($_POST['nom']))     ? Rec($_POST['nom'])     : '';
 $email   = (isset($_POST['mail']))   ? Rec($_POST['mail'])   : '';
 $objet   = (isset($_POST['objet']))   ? Rec($_POST['objet'])   : '';
 $message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
 

 $mail = (IsEmail($mail)) ? $mail : ''; 
 
 if (($nom != '') && ($mail != '') && ($objet != '') && ($message != ''))
 {

  $headers  = 'MIME-Version: 1.0' . "\r\n";
  $headers .= 'From:'.$nom.' <'.$mail.'>' . "\r\n" .
    'Reply-To:'.$mail. "\r\n" .
    'Content-Type: text/plain; charset="utf-8"; DelSp="Yes"; format=flowed '."\r\n" .
    'Content-Disposition: inline'. "\r\n" .
    'Content-Transfer-Encoding: 7bit'." \r\n" .
    'X-Mailer:PHP/'.phpversion();
 

  if ($copie == 'oui')
  {
   $cible = $destinataire.';'.$mail;
  }
  else
  {
   $cible = $destinataire;
  };
 
  $caracteres_speciaux     = array(''', '’', '"', '<br>', '<br />', '<', '>', '&', '…',   '’', '‘');
  $caracteres_remplacement = array("'",      "'",        '"',      '',    '',       '<',    '>',    '&',     '...', '>>',      '<<'     );
 
  $objet = html_entity_decode($objet);
  $objet = str_replace($caracteres_speciaux, $caracteres_remplacement, $objet);
 
  $message = html_entity_decode($message);
  $message = str_replace($caracteres_speciaux, $caracteres_remplacement, $message);
 
  $num_emails = 0;
  $tmp = explode(';', $cible);
  foreach($tmp as $mail_destinataire)
  {
   if (mail($mail_destinataire, $objet, $message, $headers))
    $num_emails++;
  }
 
  if ((($copie == 'oui') && ($num_emails == 2)) || (($copie == 'non') && ($num_emails == 1)))
  {
   echo '<p>'.$message_envoye.'</p>';
   echo '<p>'.$retour_accueil.'</p>'."\n";
  }
  else
  {
   echo '<p>'.$message_non_envoye.'</p>';
  };
 }
 else
 {

  echo '<p>'.$message_formulaire_invalide.' <a href="contact.html">Retour au formulaire</a></p>'."\n";
 };
};
?>


EDIT : Ajout du LANGAGE dans les balises de code
A voir également:

5 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
7 mai 2020 à 16:08
Bonjour,

Rien qu'en corrigeant les balises de code pour y ajouter le langage (explications disponibles ici https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code) on voit déjà une erreur ligne 72
0
Merci de ta réponse (mais je ne vois pas ce qu'il faut faire pour la corriger), ya t-il d'autres erreurs ou est-ce la seule ?
Merci à vous tous
0
Une réponse pour ma question ?
Merci d'avance
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
9 mai 2020 à 10:48
Ne vois tu pas une erreur ici :
array('''

une quote entre deux quotes ?
Corrige par les simples quotes qui encapsulent par des guillemets et ça ira mieux je pense.
array("'"


Sinon, la fonction get_magic_quotes_gpc est obsolète avec la dernière version de php. il ne faut donc plus l'utiliser.

Pour le reste.... active l'affichage des erreurs php sur ton site... teste ton code et tu verras bien si il marche et/ou si tu as des messages d'erreur.

Au passage, je t'invite à lire et à appliquer les conseils donnés ici :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
0
Ok merci de ta réponse, mais normalement ya que sa comme erreurs ?
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
9 mai 2020 à 10:55
il n'y a rien d'autre qui me saute aux yeux...
mais bon.. on s'en fou un peu puisque tu vas le tester après avoir lu et appliquer les informations données dans les liens que je t'ai collé....
Donc si il y a des erreurs tu le verras rapidement...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ok sa marche Jordan, et merci beaucoup de ton aide !! j'ai pu trouver erreur qui peut être fatale.
Merci à toi
0