Vérification code PHP, svp !

Résolu
gmatg -  
 gmatg -
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
gmatg
 
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
gmatg
 
Une réponse pour ma question ?
Merci d'avance
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
gmatg
 
Ok merci de ta réponse, mais normalement ya que sa comme erreurs ?
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
gmatg
 
Ok sa marche Jordan, et merci beaucoup de ton aide !! j'ai pu trouver erreur qui peut être fatale.
Merci à toi
0