souci avec mon formulaire

souci avec mon formulaire - PHP - Programmation

Marsh Posté le 04-07-2006 à 11:12:57    

bjr à tous ,
voila mon souci  
 
j ai 2 formulaires , A et B
 
je remplis le formulaire A avec des données j effectue des tests dessus et si tout est "ok" je mets à jour ma BDD sinon j affiche un message d'erreur...  
 
Mais dans le cas ou tout est "ok" j aimerai bien afficher la page B tout en effectuant mes tests sur la page A (juste avant de passer à la page B), mais cela ne marche pas qd j applique un "Onclick" ou "action" je vais vers la page B mais mes tests ne sont pas effectués ... :??: (on dirait que "Onclick" ou "action" feinte mes tests est passe directement à la page B)
 
En bref le truc que je veux realiser et la suivante :
 
si page A == ok  
----> mettre à jour mes données puis passer à ma page B
sinon
----> afficher les messages d erreur jusqu à validation du formulaire
 
voila si quelqu un a une idée ou plusieurs je le remerci d'avance !! :wahoo:  
 
 
 

Reply

Marsh Posté le 04-07-2006 à 11:12:57   

Reply

Marsh Posté le 04-07-2006 à 11:43:20    

T'as essayé d'utiliser des booléens ?
 
Exemple :
Si page A == OK  
  UPDATE BD
  AffichagePageB = true
 
Si AffichagePageB == true
   Afficher
 
 
Qu'en dis-tu ?

Reply

Marsh Posté le 04-07-2006 à 11:45:23    

non pas des booleens car mais test renvoi
--> "ok" si c'est bon
--> "pasok" si ce n'ets pas bon

Reply

Marsh Posté le 04-07-2006 à 11:48:05    

Perso, je ferai un truc comme ça dans ton cas :
 
Si page A ok
header("Location:ton_url" );
 
Et ca marche très bien.

Reply

Marsh Posté le 04-07-2006 à 11:52:07    

wewen1 a écrit :

Perso, je ferai un truc comme ça dans ton cas :
 
Si page A ok
header("Location:ton_url" );
 
Et ca marche très bien.


 
C'est exactement se que je fais mais il n'effectue pas les tests de mon form de la page A et je bascule directement sur a page B :heink:


Message édité par mitch46000 le 04-07-2006 à 11:52:45
Reply

Marsh Posté le 04-07-2006 à 11:56:16    

Tu peux nous donner un bout de code avec les test et la ligne du header stp ?
 

Reply

Marsh Posté le 04-07-2006 à 12:01:22    

Voici mon code :
 
 
 

Code :
  1. *****
  2. *test*-> retourne $verif ="ok" ou "pasok" selon les cas
  3. *****
  4. if($verif=="ok" ) {
  5. echo "<script language=JavaScript type=text/JavaScript>alert('Vos données ont bien été enregistrées');</script>";
  6.     // insertion d une nouvelle valeur à la base personne  
  7.  $requete_modif = "UPDATE personne SET nom=\"$r2\" , prenom=\"$r3\" , email=\"$r4\" ,
  8.    date_naissance=\"$r5\" , adresse=\"$r6\", ville=\"$r7\", cp=\"$r8\" ,
  9.    numero_tel=\"$r9\" , motpasse=\"$r10\"  WHERE pseudo_personne=\"$r1\" ";
  10.  //$resultat = mysql_db_query("vietnam",$requete_modif,$db);
  11.  echo $requete_modif;
  12.  $resultat=mysql_query($requete_modif);
  13.  }
  14. }
  15.  if (@$verif =="ok" )
  16.  header("Location: pageB.php" );
  17. *******************
  18. *affichage de  mon form*
  19. *******************

Message cité 1 fois
Message édité par mitch46000 le 04-07-2006 à 12:02:09
Reply

Marsh Posté le 04-07-2006 à 12:20:33    

mitch46000 a écrit :

Voici mon code :
 
 
 

Code :
  1. if (@$verif =="ok" ) { // attention tu as oublié ça {
  2.  header("Location: pageB.php" );
  3. } // et on le ferme ici
  4. *******************
  5. *affichage de  mon form*
  6. *******************



 
Je sais pas si c'est la cause du pb mais vérifies déjà ça stp.

Reply

Marsh Posté le 04-07-2006 à 12:21:39    

Comment tu a le retour pour verif. Tu passes un $_GET ?

Reply

Marsh Posté le 04-07-2006 à 12:24:52    

non cela ne marche toujours pas mais j ai un message d erreur  
qui s affiche qui est le suivant
 

Code :
  1. j ai fais un echo de ma requete UPDATE personne SET nom="tt" , prenom="pp" , email="test@hotmail.fr" , date_naissance="1921-02-3" , adresse="117 impp", ville="cahors", cp="46000" , numero_tel="0565530106" , motpasse="123" WHERE pseudo_personne="davy64"
  2. Warning: Cannot modify header information - headers already sent by (output started at e:..:7) in e:.. on line 350


 
c'est le warning il correspont à quoi?

Reply

Marsh Posté le 04-07-2006 à 12:24:52   

Reply

Marsh Posté le 04-07-2006 à 12:32:02    

echo $requete_modif;
 
bah c est malin :sweat:
et comment tu veux envoyer ton header maintenant ?
 
edit :
j avais pas vu y un autre echo avant :/
tu peux *pas* utiliser la fonction header(); apres un echo d ou ton message d erreur


Message édité par mIRROR le 04-07-2006 à 12:37:09
Reply

Marsh Posté le 04-07-2006 à 12:34:07    

wewen1 a écrit :

Je sais pas si c'est la cause du pb mais vérifies déjà ça stp.


 
La notation utilisee :  

Code :
  1. if (@$verif =="ok" )
  2.         header("Location: pageB.php" );


est parfaitement valide....
 
en revanche pour faire les choses correctement il faudrait mettre :

Code :
  1. if ($verif =="ok" ) {
  2.         header("Location: pageB.php" );
  3.         exit();
  4. }


Reply

Marsh Posté le 04-07-2006 à 12:48:29    

Et si par exemple tu enlevé ton deuxième if et que tu faisais ça:

Code :
  1. if($verif=="ok" ) {
  2. // insertion d une nouvelle valeur à la base personne  
  3.         $requete_modif = "UPDATE personne SET nom=\"$r2\" , prenom=\"$r3\" , email=\"$r4\" ,
  4.              date_naissance=\"$r5\" , adresse=\"$r6\", ville=\"$r7\", cp=\"$r8\" ,                       
  5.              numero_tel=\"$r9\" , motpasse=\"$r10\"  WHERE pseudo_personne=\"$r1\" ";
  6.  //$resultat = mysql_db_query("vietnam",$requete_modif,$db);
  7.  $resultat=mysql_query($requete_modif);
  8. // Redirection
  9. header("Location: pageB.php?verif=ok" );
  10.  }


 
Et en page B
Tu mets
 

Code :
  1. if ($_GET['verif'] == "ok" ) {
  2. echo 'Vos données ont bien été enregistrées';
  3. // Puis le reste de ta page
  4. }
  5. else {}

Reply

Marsh Posté le 04-07-2006 à 13:09:34    

Pour virer le message d'erreur du header, il faut mettre ob_start(); tout en haut de ta page et ob_end_flush() tout à la fin.
 
Tu code un peu bizarrement. Cela te sert à quoi de faire @$verif ? Personnelement je n'en vois pas l'utilité. Et pour ce qui est de ta requête SQL, tu t'embête énormément.  
Exemple d'une syntaxe plus "lisible":

Code :
  1. $req = "UPDATE personne SET nom='".$r2."' , prenom='".$r3."' , email='".$r4."' , date_naissance='".$r5."' , adresse='".$r6."', ville='".$r7."', cp='".$r8."' , numero_tel='".$r9."' , motpasse='".$r10."' WHERE pseudo_personne='".$r1."'";


 
Pour info si pseudo_personne est une chaine de caractère alors ta syntaxe SQL est fausse. Il faut procéder comme ceci :

Code :
  1. $req = "UPDATE personne SET nom='".$r2."' , prenom='".$r3."' , email='".$r4."' , date_naissance='".$r5."' , adresse='".$r6."', ville='".$r7."', cp='".$r8."' , numero_tel='".$r9."' , motpasse='".$r10."' WHERE pseudo_personne LIKE '".$r1."'";


 
As-tu vérifié que tes variables _GET étaient bien définies avec la fonction isset() ???
 
Pense bien à faire un maximum de test. Plus tu feras de tests, plus t'es sur d'avoir un système "stable" en quelque sorte.


Message édité par AlphaZone le 04-07-2006 à 13:12:17
Reply

Marsh Posté le 04-07-2006 à 14:10:45    

MErci à tous car grace a tous vos petits conseils cela marche comme je le voulais merci  :jap:  
 
sinon je sais , je code comme un petit cochon lol :sarcastic:


Message édité par mitch46000 le 04-07-2006 à 14:12:03
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed