ne passe pas à la page suivante

Eléphanteau du PHP | 40 Messages

20 janv. 2012, 18:38

Salut à tous
je suis en train de faire un formulaire qui envoi la requête dans un fichier "reponse.php"
si le client a un compte, je demande le pseudo et le mot de passe, puis ma table cde est incrémentée sinon, je demande les infos au client puis je crée la fiche dans la table client, enfin j'incrémente ma table cde.
le fichier reponse doit envoyer dans un autre fichier (via header)
pourtant , rien à faire!
il reste désespérément dans le fichier reponse que le client ait un compte ou non!
La bdd n'est pas incrémentée.
je pensais à une erreur sql mais je ne trouve rien!
merci de votre aide
voici mon php

Code : Tout sélectionner

<?php session_start(); $db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error()); // sélection de la base mysql_select_db('impression',$db) or die('Erreur de selection '.mysql_error()); include ("calcul.php"); //Initialisation var //Mise en session des valeurs du formulaire while ( list($cle, $val) = each( $_POST ) ){ $_SESSION[$cle] =$_POST[$cle]; } $Msg =''; $produit=$_SESSION['produit']; $fichier=$_SESSION['fichier']; $typeadhesif=$_SESSION['typeadhesif']; $hauteuradhesif=$_SESSION['hauteuradhesif']; $largeuradhesif=$_SESSION['largeuradhesif']; $hauteurlettre=$_SESSION['hauteurlettre']; $couleurlettre=$_SESSION['couleurlettre']; $quantiteadhesif=$_SESSION['quantiteadhesif']; $plastifadhesif=$_SESSION['plastifadhesif']; $typeplastifadhesif=$_SESSION['typeplastifadhesif']; $typepaiement=$_SESSION['typepaiement']; $compte= $_SESSION['compte']; $nbvisites=$_SESSION['nbvisites']; $Contact_LeNom=''; $Contact_LePrenom=''; $Contact_LeTelephone=''; $Contact_LeEmail=''; $Contact_LeMessage=''; $Contact_Contact_adresse=''; $Contact_Lecp=''; $Contact_Leville=''; $pseudo=''; $motdepasse=''; $nouvpseudo=''; $nouvmotdepasse=''; //reponse if ($fichier=="oui") { if ($typeadhesif=="adhesif") {$Msg = "Le devis pour $quantiteadhesif $typeadhesif(s) de $hauteuradhesif mm par $largeuradhesif mm $plastif est de $devis euros<br/><br/>"; } elseif ($typeadhesif=="microperf" ) {$Msg = "Le devis pour $quantiteadhesif $typeadhesif(s) de $hauteuradhesif mm par $largeuradhesif mm est de $devis euros<br/>";} elseif ($typeadhesif=="lettre" ) {$Msg = "Le devis pour $quantiteadhesif $typeadhesif(s) de $hauteuradhesif mm par $largeuradhesif mm $plastif est de $devis euros<br/>";} } elseif ($fichier=="non") { if ($typeadhesif=="adhesif") {$Msg = "Le devis pour $quantiteadhesif $typeadhesif(s) de $hauteuradhesif mm par $largeuradhesif mm $plastif est de $devis euros<br/>Le devis concerne uniquement l'impression, en effet, la pao donnera lieu a un devis séparé<br/>"; } //etc etc if (isset($_SESSION['Contact_Nom'])){ $Contact_LeNom= htmlentities( stripslashes($_SESSION['Contact_Nom'])); } if (isset($_SESSION['Contact_Prenom'])){ $Contact_LePrenom= htmlentities( stripslashes($_SESSION['Contact_Prenom'])); } if (isset($_SESSION['Contact_Telephone'])){ $Contact_LeTelephone= htmlentities( stripslashes($_SESSION['Contact_Telephone'])); } if (isset($_SESSION['Contact_Email'])){ $Contact_LeEmail= htmlentities( stripslashes($_SESSION['Contact_Email'])); } if (isset($_SESSION['Contact_adresse'])){ $Contact_Leadresse= htmlentities( stripslashes($_SESSION['Contact_adresse'])); } if (isset($_SESSION['Contact_cp'])){ $Contact_Lecp= htmlentities( stripslashes($_SESSION['Contact_cp'])); } if (isset($_SESSION['Contact_ville'])){ $Contact_Leville= htmlentities( stripslashes($_SESSION['Contact_ville'])); } if (isset($_SESSION['pseudo'])){ $Le_pseudo= htmlentities( stripslashes($_SESSION['pseudo'])); } if (isset($_SESSION['motdepasse'])){ $Le_motdepasse= htmlentities( stripslashes($_SESSION['motdepasse'])); } if (isset($_SESSION['nouvpseudo'])){ $Le_nouvpseudo= htmlentities( stripslashes($_SESSION['nouvpseudo'])); } if (isset($_SESSION['nouvmotdepasse'])){ $Le_nouvmotdepasse= htmlentities( stripslashes($_SESSION['nouvmotdepasse'])); } //Si validation du formulaire if(isset($_POST['Submit'])) { if ( isset($_SESSION['compte']) and $_SESSION['compte']=="non" ) { //Verif champ obligatoire if(empty($_POST['Contact_Nom'])){ $Msg .= "Erreur de saisie : Nom !"; } if(empty($_POST['Contact_Prenom'])){ $Msg .= "<BR>Erreur de saisie : Prenom !"; } if(empty($_POST['Contact_Telephone'])){ $Msg .= "<BR>Erreur de saisie : telephone !"; } if( !eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$", $_POST['Contact_Email']) ){ $Msg .= "<BR>Votre adresse email semble invalide !"; } if(empty($_POST['nouvpseudo'])){ $Msg .= "Erreur de saisie : nouvpseudo !"; } if(empty($_POST['nouvmotdepasse'])){ $Msg .= "<BR>Erreur de saisie : mot de passe !"; } } elseif ( isset($_SESSION['compte']) and $_SESSION['compte']=="oui" ) { //Verif champ obligatoire if(empty($_POST['pseudo'])){ $Msg .= "Erreur de saisie : pseudo !"; } if(empty($_POST['motdepasse'])){ $Msg .= "<BR>Erreur de saisie : mot de passe !"; } } //Vérif OK if( empty($Msg)) { if ( isset($_SESSION['compte']) and $_SESSION['compte']=="non" ) { if(isset($_SESSION['Contact_Nom'])) {$nom=$_SESSION['Contact_Nom'];} else {$nom="";} if(isset($_SESSION['Contact_Prenom'])) {$prenom=$_SESSION['Contact_Prenom'];} else {$prenom="";} if(isset($_SESSION['Contact_Telephone'])) {$fixe=$_SESSION['Contact_Telephone'];} else {$fixe="";} if(isset($_SESSION['Contact_Email'])) {$mail=$_SESSION['Contact_Email'];} else {$mail="";} if(isset($_SESSION['Contact_adresse'])) {$adresse=$_SESSION['Contact_adresse'];} else {$adresse="";} if(isset($_SESSION['Contact_cp'])) {$cp=$_SESSION['Contact_cp'];} else {$cp="";} if(isset($_SESSION['Contact_ville'])) {$ville=$_SESSION['Contact_ville'];} else {$ville="";} if(isset($_SESSION['pseudo'])) {$pseudo=$_SESSION['pseudo'];} else {$pseudo="";} if(isset($_SESSION['motdepasse'])) {$motpasse=$_SESSION['motdepasse'];} else {$motdepasse="";} if(isset($_SESSION['nouvpseudo'])) {$nouvpseudo=$_SESSION['nouvpseudo'];} else {$nouvpseudo="";} if(isset($_SESSION['nouvmotdepasse'])) {$nouvmotdepasse=$_SESSION['nouvmotdepasse'];} else {$nouvmotdepasse="";} if(isset($_SESSION['nbvisites'])) $nbvisites=$_SESSION['nbvisites']; else $nbvisites=""; // on écrit la requête sql $sql = "INSERT INTO client(id2,pseudo,motdepasse,nom, prenom, tel,email,adresse,cp,ville) VALUES('','$nouvpseudo','$nouvmotdepasse','$nom','$prenom','$fixe','$mail','$adresse','$cp','$ville')"; // on insère les informations du formulaire dans la table mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); $sql="SELECT * FROM client WHERE nom = '".$_SESSION['Contact_Nom']."'"; $resultat=mysql_query($sql) or die("Erreur SQL : $sql<br/>".mysql_error()); $client = mysql_fetch_array ($resultat) ; $id=$client['id2']; $_SESSION['id2']=$id; $sql = "INSERT INTO cde(id,client,fichier,typeadhesif,hauteuradhesif, largeuradhesif, hauteurlettre,couleurlettre,quantiteadhesif,plastifadhesif,typeplastifadhesif,explication1,typepaiement) VALUES('','$id','$fichier','$typeadhesif','$hauteuradhesif','$largeuradhesif','$hauteurlettre','$couleurlettre','$quantiteadhesif','$plastifadhesif','$typeplastifadhesif','$explication1','$typepaiement')"; mysql_close($db); // on ferme la connexion header("location: clientindex.php"); } if ( isset($_SESSION['compte']) and $_SESSION['compte']=="oui" ) { $id=$_SESSION['pseudo']; $sql = "INSERT INTO cde(id,client,fichier,typeadhesif,hauteuradhesif, largeuradhesif, hauteurlettre,couleurlettre,quantiteadhesif,plastifadhesif,typeplastifadhesif,explication1,typepaiement) VALUES('','$id','$fichier','$typeadhesif','$hauteuradhesif','$largeuradhesif','$hauteurlettre','$couleurlettre','$quantiteadhesif','$plastifadhesif','$typeplastifadhesif','$explication1','$typepaiement')"; mysql_close($db); // on ferme la connexion header("location: clientindex.php"); } } } //Menu select compte $Printcompte = array("non" => "non","oui" => "oui"); foreach($Printcompte as $cle=>$valeur){ if (isset($_SESSION['compte']) && $_SESSION['compte']== $valeur && !empty($_SESSION['compte']) ){ $Printcompte.= "<option value=\"".$valeur."\" selected>".$cle."</option>\n"; }else{ $Printcompte.= "<option value=\"".$valeur."\">".$cle."</option>\n"; }} ?>
je vous ai épargné des différents §Msg pour simplifier

merci

ViPHP
ViPHP | 1996 Messages

20 janv. 2012, 19:11

Tu trie les visiteurs par nom ?
$sql="SELECT * FROM client  WHERE nom = '".$_SESSION['Contact_Nom']."'";
Et si tu as deux visiteurs du même nom (ce qui n'est pas rare) tu fais comment ?
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Eléphanteau du PHP | 40 Messages

20 janv. 2012, 19:29

merci pour ton aide,

tu as raison, je ferai ma requête sur le pseudo et le mot de passe, mais le pb n'est pas là

ViPHP
xTG
ViPHP | 7331 Messages

20 janv. 2012, 19:38

Tu as vérifié que $Msg était vide (tu ne sembles pas l'afficher) ? Car je ne vois pas de cas else dans tous tes tests.
Donc tu as une tonne de condition qui ne renvoie aucun message d'erreur (ou affichage) en cas de problème.

ViPHP
ViPHP | 1996 Messages

20 janv. 2012, 19:45

merci pour ton aide,

tu as raison, je ferai ma requête sur le pseudo et le mot de passe, mais le pb n'est pas là
Je te conseille de la faire sur l'adresse courriel : elle doit être normalement unique
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Eléphanteau du PHP | 40 Messages

23 janv. 2012, 15:47

Mais c'est bien sûr!!!
bien vu XTG, après l'installation d'un else, $Msg n'est effectivement pas vide.
evidement, j'utilise la même variable pour les messages d'erreur et les réponses au formulaire : j'ai utilisé $Msg2 et tout est rentré dans l'ordre

Pour la requête, je vais la faire sur l'adresse courriel.
merci pour votre aide précieuse