Adapter mon formulaire contact en version responsive

Fermé
myriam_marmotte Messages postés 24 Date d'inscription mardi 29 juillet 2014 Statut Membre Dernière intervention 10 septembre 2015 - Modifié par jordane45 le 29/07/2015 à 17:57
myriam_marmotte Messages postés 24 Date d'inscription mardi 29 juillet 2014 Statut Membre Dernière intervention 10 septembre 2015 - 10 sept. 2015 à 12:28
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 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
29 juil. 2015 à 18:00
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 mardi 29 juillet 2014 Statut Membre Dernière intervention 10 septembre 2015
29 juil. 2015 à 21:52
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 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
29 juil. 2015 à 21:58
Tu peux me faire un screenshot de ce que ça t'affiche ?
0
myriam_marmotte Messages postés 24 Date d'inscription mardi 29 juillet 2014 Statut Membre Dernière intervention 10 septembre 2015
31 juil. 2015 à 10:08
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 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
31 juil. 2015 à 10:23
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 mardi 29 juillet 2014 Statut Membre Dernière intervention 10 septembre 2015
31 juil. 2015 à 10:42
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 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
31 juil. 2015 à 10:53
Tu bosses en local sur ton pc ?
0
myriam_marmotte Messages postés 24 Date d'inscription mardi 29 juillet 2014 Statut Membre Dernière intervention 10 septembre 2015
31 juil. 2015 à 10:57
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 mardi 29 juillet 2014 Statut Membre Dernière intervention 10 septembre 2015
31 juil. 2015 à 11:01
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 mardi 29 juillet 2014 Statut Membre Dernière intervention 10 septembre 2015
10 sept. 2015 à 12:28
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