Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1133 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Problèmes $_COOKIE et $_POST

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problèmes $_COOKIE et $_POST

n°1576807
kvf300
Posté le 19-06-2007 à 15:05:46  profilanswer
 

Bonjour
 
Je viens de terminer un script pour un formulaire et comme je suis novice en la matière il ne fonctionne pas. :heink:    :??:  
En effet, meme si je rentre un numéro de téléphone à 10 chiffres, un message m'indiquant que le numéro ne comporte pas 10 chiffres apparait quand meme. :(  
 
Je laisse le code de ma page test (code raccourci) ci dessous et j'imagine que l'erreur doit etre celle d'un débutant ...( que je suis d'ailleurs)  
Mon formulaire se trouve sur une page formulaire.php et le code qui suit est dans une autre page traitement.php.
 

Code :
  1. <?php
  2. if (isset($_POST["nom"]))
  3. {
  4. setcookie('cookie_nom', $_POST["nom"], (time() + 15));
  5. }
  6. .................
  7. if (isset($_POST["email"]))
  8. {
  9. setcookie('cookie_email', $_POST["email"], (time() + 15));
  10. }
  11. ?>
  12. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  13. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
  14. .................
  15. $formnom = $_POST['nom'];
  16. $formemail = $_POST['email'];
  17. ..................
  18. if(!empty($formemail) && !empty($formprenom) && !empty($formnom) )
  19. {
  20.     if ( preg_match ("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", "$formemail" ) )
  21.      {
  22.        if ( preg_match("#^0[0-68]([-. ]?[0-9]{2}){4}$#", '$formtelephone') )
  23.   {
  24.    if(md5($nombre) == $_SESSION['valeur_image'])
  25.     {
  26.       //ok pas vide  
  27.       //on convertie les caractètres HTML de tous les champs  
  28.       $formnom = htmlentities($formnom);
  29.                                                         ...............................................
  30.                                                         $formemail = htmlentities($formemail);
  31.                                                         $formcourrier = "Il s'agit d'une demande de .........    //mis en forme du message qui sera envoyé
  32.       if( mail('moi@fai.com','Demande d\'informations',$formcourrier,$formemail) )
  33.         {
  34.         echo 'Les informations ont bien été envoyées!';
  35.         }
  36.       else {
  37.         echo 'Une erreur est survenu lors de l\'envoi du message';
  38.         }
  39.     }
  40.    else {
  41.      echo 'Vous avez entré un mauvais code'; ?>
  42.            <span><a href="index_reservations.php">Modifier le ou les champs erronés</a></span>
  43.            <?php 
  44.       }
  45.   }
  46.  else {
  47.    echo 'Vérifier que votre numéro de téléphone est composé de 10 chiffres'; ?>
  48.          <span><a href="index_reservations.php">Modifier le ou les champs erronés</a></span>
  49.          <?php 
  50.      }
  51. }
  52. else {
  53.    echo 'Vérifier que votre email est de la forme  xxxxxx@xx.xx '; ?>
  54.         <span><a href="index_reservations.php">Modifier le ou les champs erronés</a></span>
  55.         <?php 
  56.    }
  57. }
  58. else {
  59.  echo 'Merci de remplir les champs Nom Prénom et Email afin que nous puissions traiter votre demande dans les plus brefs délais.'; ?>
  60.        <span><a href="index_reservations.php">Modifier le ou les champs erronés</a></span>
  61.        <?php 
  62.  }
  63. ?>
  64. .....................
  65.    </body>
  66. </html>


 
Plusieurs interrogations concernant ce formulaire: :bounce:  
 
 

  • J'utilise des cookies pour remplir le formulaire avec les données déà entrées comme ca si la personne venait à oubier de remplir son nom prenom ou email les autres champs seraient déjà remplis mais voila, un problème se pose:  

Comment faire si l'utilisateur n'entre pas de nom ou de prenom ou d'email  :sarcastic: ? En effet, la variable $cookie_nom prend la valeur qui se trouve dans la zone texte prévu à cet effet et si l'utilisateur ne rentre rien, lorsque le formulaire réapparait il y a des espaces dans la zone de texte "nom" ou "prenom". Comment remédier à ce problème ?

  • Commentfaire si l'on doit remettre le formulaire car il y a une erreur sans faire un lien vers le formulaire ? Je pensais à la redirection mais je n'arrive pas à l'utilser du fait qu'elle doit etre utilisé avant tout alors que moi je voudrais dire à l'utilisateur: Vous avez oublié ce champs  ( et puis redirection dans 5 secondes)


 
Merci d'avance à toutes celles et ceux qui liront mon message.
 
J'attends vos réponses avec impatience.
 :hello:  
kvf300
 

mood
Publicité
Posté le 19-06-2007 à 15:05:46  profilanswer
 

n°1576819
anapajari
s/travail/glanding on hfr/gs;
Posté le 19-06-2007 à 15:21:05  profilanswer
 

leçon 1: de l'importance des quotes (') et des doubles quotes (" )

Code :
  1. preg_match("#^0[0-68]([-. ]?[0-9]{2}){4}$#", '$formtelephone')


ça va pas marcher là :o
http://fr2.php.net/types.string
 
2eme point: pourquoi ne pas te servir simplement de $_POST?
 
3eme point: rien compris [:dawa]

n°1576830
kvf300
Posté le 19-06-2007 à 15:42:31  profilanswer
 

Merci pour cette réponse aussi rapide et efficace.
Grace au double quotes tous fonctionne.
Concernant mon questionnement, je m'explique: une personne rempli un formulaire, ensuite elle se trompe , elle reviens au formulaire grace à un lien et corrige son erreur sans pour autant réecrire tous le reste déjà entré, néanmoins si elle n'a rien rentré, php sauvegarde des espaces dans les variables cookie d'où ma question, comment remédier à ce problème ?
 
Enfin, je n'utilise pas de _POST car j'ai vu quelque part que  " si le register global est à on il peut y avoir des problèmes ". Je ne sais pas du tout ce que cela signifie mais je ne voulais pas avoir à modifier ceci si je venais à héberger mon site sur un hébergeur mutualisé car is j'ai bien compris je n'aurais pas accès au php.ini ..
 
kvf300

n°1577256
XprtZ
Profil : O.O
Posté le 20-06-2007 à 13:03:00  profilanswer
 

fais une condition du genre si les champs nom / prénom / mail sont vide =>  error :)
Tu peux aussi aller plus loin pour le mail avec une vérification pour savoir si il a bien rentré une adresse mail ou pas :)


---------------
PSN : XprtZ - BattleTag : XprtZ#2257 - 3DS : 2492-4109-3060

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Problèmes $_COOKIE et $_POST

 

Sujets relatifs
Menu en html, css et javascript, nombreux problèmesDeux colonnes pour contenu problèmes IE 6
Premiers pas :) et premiers problemes... (appel de sous programmes)Cookie + include + get
[PDO] Problèmes avec les requêtes préparéesproblème controle d'accès avec cookie
Problèmes à cause des apostrophes, slashes et autres caractères spéciaComment faire ça (image dans le post) ?
3 problemes dans un site avec FireFoxModification post compilation
Plus de sujets relatifs à : Problèmes $_COOKIE et $_POST


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR