Adapter mon formulaire contact en version responsive

myriam_marmotte Messages postés 24 Date d'inscription   Statut Membre Dernière intervention   -  
myriam_marmotte Messages postés 24 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

J'ai me suis récemment lancé le défi de passer toute seule (comme une grande) mon site web en version responsive.
Grâce à de nombreuses lectures de tutos, j'y suis presque arrivée.

Mon problème réside dans l'adaptation de mon formulaire de contact.
Lorsque je cliques sur le bouton "envoi message", ça me renvoie mon code php.

Pour info j'ai repris le formulaire ainsi que le php existants sur mon site. J'ai adapté le code du formulaire pour qu'il soit responsive (à l'affichage, c'est nickel). C'est au niveau du traitement que ça bugue, et là je ne sais pas de où ça peut provenir.

Merci d'avance pour vos idées.

Je vous colle le code du formulaire :

 <div class="content">
         <form id="contact" method="post" action="traitement_formulaire.php">
                                   
          <div class="row 50%">
           <div class="6u 12u(mobile)">
            <input type="text" name="nom" placeholder="Nom" />
           </div>
                                        </div>
                                        <div class="row 50%">
           <div class="6u 12u(mobile)">
            <input type="text" name="prenom" placeholder="Prénom" />
           </div>
                                        </div>
                                        <div class="row 50%">
           <div class="6u 12u(mobile)">
            <input type="text" name="adresse" placeholder="Adresse" />
           </div>
                                         </div>   
                                         <div class="row 50%">
           <div class="6u 12u(mobile)">
            <input type="text" name="tel" placeholder="Téléphone" />
           </div>
                                         </div>  
           <div class="row 50%">
                                        <div class="6u 12u(mobile)">
            <input type="text" name="email" placeholder="Email" />
           </div>
          </div>
           <div class="row 50%">
           <div class="12u">
            <input type="text" name="objet" placeholder="Objet" />
           </div>
          </div>
          <div class="row 50%">
           <div class="12u">
            <textarea name="message" placeholder="Message" rows="7"></textarea>
           </div>
          </div>
          <div class="row">
           <div class="12u">
            <ul class="buttons">
             <li><input type="submit" name="envoi" class="special" value="Envoi Message" /></li>
            </ul>
           </div>
          </div>
         </form>
        </div>



et voici le php (c'est celui qui fonctionnait avec l'ancien formulaire) :

<?php 


$destinataire = 'xxx@xxx.com'; 
$copie = 'oui';

// Messages de confirmation du mail 
$message_envoye = "Votre message nous est bien parvenu." ;
$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP."; 

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

// on teste si le formulaire a été soumis 
if (!isset($_POST['envoi']))
{ 
 // formulaire non envoyé 
 echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
} 
else 
{
 // formulaire envoyé, on récupère tous les champs. 
 $nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : ''; 
 $prenom = (isset($_POST['prenom'])) ? Rec($_POST['prenom']) : ''; 
 $adresse = (isset($_POST['adresse'])) ? Rec($_POST['adresse']) : ''; 
 $tel = (isset($_POST['tel'])) ? Rec($_POST['tel']) : '';
 $email = (isset($_POST['email'])) ? Rec($_POST['email']) : ''; 
 $objet = (isset($_POST['objet'])) ? Rec($_POST['objet']) : ''; 
 $message = (isset($_POST['message'])) ? Rec($_POST['message']) : ''; 
 


 
 $email = (IsEmail($email)) ? $email : ''; 

 if (($nom != '') && ($email != '') && ($comments != '')) 
 { 
  
  $headers = 'MIME-Version: 1.0' . "\r\n"; 
  $headers .= 'From:'.$nom.' <'.$email.'>' . "\r\n" . 
  'Reply-To:'.$email. "\r\n" . 
  'X-Mailer:PHP/'.phpversion(); 

  
  if ($copie == 'oui') 
  { 
   $cible = $destinataire.','.$email; 
  } 
  else 
  { 
   $cible = $destinataire; 
  }

   
  $contenuMail = '';
  $contenuMail .= 'Objet : ' . $objet . "\r\n";
  $contenuMail .= 'Message de : ' . $nom . "\r\n";
  $contenuMail .= 'Prénom : ' . $prenom . "\r\n";
  $contenuMail .= 'Adresse : ' . $adresse . "\r\n";
  $contenuMail .= 'Téléphone : ' . $tel . "\r\n";
  $contenuMail .= 'Email : ' . $email . "\r\n";
  $contenuMail .= 'Message : ' . $message . "\r\n";
  
  

  
  if (mail($cible, $objet, $contenuMail, $headers)) 
  { 
   header('Location: page-remerciement.html');
   exit();
  } 
  else 
  { 
   echo '<p>'.$message_non_envoye.'</p>'."\n"; 
  }

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



function Rec($text) 
{ 
 if (1 === get_magic_quotes_gpc()) 
 { 
  $text = stripslashes($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; 
} 


?>


EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

Merci d'y penser dans tes prochains messages.
.
A voir également:

3 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,


Lorsque je cliques sur le bouton "envoi message", ça me renvoie mon code php.


Quand tu dis :

Pour info j'ai repris le formulaire ainsi que le php existants sur mon site. J'ai adapté le code du formulaire pour qu'il soit responsive (à l'affichage, c'est nickel). C'est au niveau du traitement que ça bugue, et là je ne sais pas de où ça peut provenir.


Tu l'as récupéré et tu testes en local sur ton pc c'est ça ??

Sachant que pour que ça fonctionne (en local sur ton pc...) il te faut installer ET utiliser un server web comme Wamp, easyPhp, Xampp ....
Sans ça .. le code PHP n'est pas interprété !!

NB : Une fois le logiciel installé .. pour naviguer sur tes pages.. tu dois passer par le LOCALHOST.
=> C'est à dire que dans l'URL de ton navigateur tu dois avoir un truc du genre :
http://localhost/tapage.php




0
myriam_marmotte Messages postés 24 Date d'inscription   Statut Membre Dernière intervention  
 
Bonsoir Jordane
en fait ce script existait déja sur mon site qui est actuellement en ligne. Et tout fonctionnait correctement.
Vu que j'ai repris tout mon site pour le rendre responsive (merci google), j'ai modifié mon code. Comme indiqué plus haut. Par contre je n'ai pas touché au php car je ne maîtrise pas du tout.
du coup mon formulaire (testé en ligne ) bugle mais je ne comprends pas de ou ça peut venir.
Merci d'avance si tu as une quelconque idée.
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Tu peux me faire un screenshot de ce que ça t'affiche ?
0
myriam_marmotte Messages postés 24 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Jordane,

Désolée pour le retard, je n'vaias pas eu la notification.

Voici la capture de ce que j'ai à l'écran lorsque je clique sur "envoi message".

Merci d'avance pour ton aide.

0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Et au moment où ça s'affiche comme ça ... quelle est l'URL dans la barre d'adresse de ton navigateur ?
0
myriam_marmotte Messages postés 24 Date d'inscription   Statut Membre Dernière intervention  
 
Ah !! je viens de voir que ça renvoie sur mon disque dur. Cela proviendrait d'un mauvais lien quelque part ?

file://macintosh%20hd/Users/C..../Site%20internet/NEW%20SITE/traitement_formulaire.php
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Tu bosses en local sur ton pc ?
0
myriam_marmotte Messages postés 24 Date d'inscription   Statut Membre Dernière intervention  
 
bah non, mon futur site "responsive" est publié mais il est caché derrière le site actuel.
0
myriam_marmotte Messages postés 24 Date d'inscription   Statut Membre Dernière intervention  
 
oups je viens de comprendre !!! je suis longue à la détente lol !

je n'étais pas sur la bonne adresse !! donc voici le message d'erreur que j'ai :

"Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur. Retour au formulaire"

et ce même si je remplis tous les champs...

Suis dég j'avais espoir que ça fonctionne cette fois :(
0
myriam_marmotte Messages postés 24 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Jordane45,

Comment vas-tu ?
Désolée ça fait un moment que je n'ai pas donné de news de mon projet, je n'ai pas eu le temps d'y travailler depuis un moment...
Me revoici donc après un test print_r($_POST);

Voilà ce que ça me donne au niveau du print :

Array ( [nom] => xx [prenom] => xx [adresse] => xxx [tel] => 0000000000 [email] => xx@xxx.fr [objet] => TEST [message] => test [envoi] => Envoi Message )
Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur. Retour au formulaire


et voici le code associé :

<?php 

// print_r dans le php si tu veux voir ce qui est envoyé par ton formulaire
print_r($_POST);

$destinataire = 'xxx@xxx';
$copie = 'oui';
$objet = 'contact depuis le site web';

// Messages de confirmation du mail
$message_envoye = "Votre message nous est bien parvenu." ;
$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";

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

// on teste si le formulaire a été soumis
if (!isset($_POST['envoi']))
{
// formulaire non envoyé
echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
}
else
{
// formulaire envoyé, on récupère tous les champs.
$nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
$prenom = (isset($_POST['prenom'])) ? Rec($_POST['prenom']) : '';
$adresse = (isset($_POST['adresse'])) ? Rec($_POST['adresse']) : '';
$tel = (isset($_POST['tel'])) ? Rec($_POST['tel']) : '';
$email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
$objet = (isset($_POST['objet'])) ? Rec($_POST['objet']) : '';
$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';



// On va vérifier les variables et l'email ...
$email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré

if (($nom != '') && ($email != '') && ($comments != ''))
{
// les 4 variables sont remplies, on génère puis envoie le mail
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'From:'.$nom.' <'.$email.'>' . "\r\n" .
'Reply-To:'.$email. "\r\n" .
'X-Mailer:PHP/'.phpversion();

// envoyer une copie au visiteur ?
if ($copie == 'oui')
{
$cible = $destinataire.','.$email;
}
else
{
$cible = $destinataire;
}

// on crée le contenu du mail
$contenuMail = '';
$contenuMail .= 'Objet : ' . $objet . "\r\n";
$contenuMail .= 'Message de : ' . $nom . "\r\n";
$contenuMail .= 'Prénom : ' . $prenom . "\r\n";
$contenuMail .= 'Adresse : ' . $adresse . "\r\n";
$contenuMail .= 'Téléphone : ' . $tel . "\r\n";
$contenuMail .= 'Email : ' . $email . "\r\n";
$contenuMail .= 'Message : ' . $message . "\r\n";

// Envoi du mail
if (mail($cible, $objet, $contenuMail, $headers))
{
header('Location: page-remerciement.html');
exit();
}
else
{
echo '<p>'.$message_non_envoye.'</p>'."\n";
}

}
else
{
// une des 3 variables (ou plus) est vide ...
echo '<p>'.$message_formulaire_invalide.' <a href="contact.html">Retour au formulaire</a></p>'."\n";
}
} // fin du if (!isset($_POST['envoi']))


/*
  • cette fonction sert à nettoyer et enregistrer un texte */ function Rec($text) { if (1 === get_magic_quotes_gpc()) { $text = stripslashes($text); } return $text; }/* * Cette fonction sert à vérifier la syntaxe d'un email */ 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; } ?>



Il me semble pourtant que tout y est... alors je ne comprends pas pourquoi ça me renvoit ce message d'erreur.

Merci d'avance si tu as le temps d'y jeter un oeil.
0