[résolu] formulaire post php qui ne marche pas ...

Eléphanteau du PHP | 18 Messages

04 oct. 2010, 17:43

 

// dois-je mettre des ` autours de key ?
 $result = mysql_query("
                              INSERT INTO vehicule(
                                    key 
                                    , type
                                    , marque
                                    , kilometrage
                                    , immatriculation
                                    , porte
                              )
                              VALUES(
                                     '" .$key. "'  
                                   , '" . $_POST["TB_type"] . "'
                                   , '" . $_POST["TB_marque"] . "'
                                   , '" . $_POST["TB_kilometrage"] . "'
                                   , '" . $_POST["TB_immatriculation"] . "'
                                   , '" . $_POST["TB_porte"] . "'
                          )
                         ");
 //variable $key definie plus haut                        
                         if(!$result)
                         {
                              $message = "Erreur d'accès à la base de données lors de la création du compte utilisateur";
                         }
                         else
                         {

LA SUITE du formulaire, etc...

Alors , je sais que mon formulaire marche, car je fais une vérif si l'entrée "immatriculation" existe pas déjà dans la table , et ca ca marche.

Par contre, impossible d'ajouter de nouvelles infos dans ma table !


J'ai aucune erreur, j'ai même pas mon retour d'erreur de connexion ou quoi. et la suite du code ne s'affiche pas (j'ai fait un print dans la boucle après le dernier else, et rien ne s'affiche)
Modifié en dernier par staan le 05 oct. 2010, 00:20, modifié 1 fois.

ViPHP
xTG
ViPHP | 7331 Messages

04 oct. 2010, 17:54

Vérifies que les erreurs sont activées dans ton php.ini
Puis ajoutes un or die(mysql_error()) à la fin de ta requête.

Après si on reviens sur ce qui devrais être fait...
Tester les valeurs contenues dans $_POST avant de les balancer ainsi dans une requête.
Protéger les variables de la requête par mysql_real_escape_string().

Eléphanteau du PHP | 18 Messages

04 oct. 2010, 18:02

le or die(mysql_error()) ne me renvoie rien, comme si le formulaire ne postait pas.

ViPHP
ViPHP | 5462 Messages

04 oct. 2010, 18:05

le or die(mysql_error()) ne me renvoie rien, comme si le formulaire ne postait pas.
montre comment t'as fais :wink:

Eléphanteau du PHP | 18 Messages

04 oct. 2010, 18:07

                    {
                         
                            $result = mysql_query("
                              INSERT INTO vehicule(
                                   key
                                   , type
                                   , marque
                                   , kilometrage
                                   , immatriculation
                                   , porte
                              )
                              VALUES(
                                     '" .mysql_real_escape_string($key). "'
                                   , '" . $_POST["TB_type"] . "'
                                   , '" . $_POST["TB_marque"] . "'
                                   , '" . $_POST["TB_kilometrage"] . "'
                                   , '" . $_POST["TB_immatriculation"] . "'
                                   , '" . $_POST["TB_porte"] . "'
                              )
                         ")or die(mysql_error());
                         

ViPHP
ViPHP | 5462 Messages

04 oct. 2010, 18:09

tu passes une condition avant ? de faire ton mysql_query ? (montre tout le code ca sera plus simple)

Eléphanteau du PHP | 18 Messages

04 oct. 2010, 18:12

Je le balance sur pastebin, y'a 180 lignes.

http://pastebin.com/6uWvAL5d

ViPHP
ViPHP | 5462 Messages

04 oct. 2010, 18:18

bon deja je te conseil de faire 2 pages différentes , 1 pour ton formulaire et 1 pour soumettre les données, ensuite y'a beaucoup de if mais y'as pas les else qui vont avec donc ca coince a une moment et ducoup on sait pas ou :wink:

Eléphanteau du PHP | 18 Messages

04 oct. 2010, 18:27

Je vais matter du côté des else manquant, mais concernant le retour du mysql error, normal que j'ai rien ?!

ViPHP
AB
ViPHP | 5818 Messages

04 oct. 2010, 18:33

Mets-toi en mode debug...

Si, avec les messages d'erreurs activés, aucun message d'erreur ne s'affiche suite à ta requête, c'est soit qu'elle est exécutée correctement soit qu'on arrive pas jusqu'à la condition qui l'exécute. Donc fait afficher des echo 'condition ok' à l'intérieur de tes accolades pour voir jusqu'où le code est exécuté.

EDIT : Au passage, tu devrais employer mysql_real_escape_string pour toutes tes variables et pas uniquement sur $key
Modifié en dernier par AB le 04 oct. 2010, 18:35, modifié 1 fois.

Eléphanteau du PHP | 18 Messages

04 oct. 2010, 18:35

justement, le code est executé juste avant ca , puisque si je met une immatriculation qui est déjà dans la bdd, il me dis qu'elle existe déjà, et avant cette condition, si l'immatriculation fait moins de 4 ou plus de 10 caractères; alors elle est refusée (en début du traitement du formulaire)

c'est au moment de rentrer les infos dans la bdd que ca coince quoi :/

Eléphanteau du PHP | 18 Messages

04 oct. 2010, 18:45

en fait , j'avais bien un problème de boucle, une boucle else qui tournait dans le vent au lieu de ramener vers la suite du code.


Je vais finir de débugger le reste.

Merci de vos conseils ! je met le tout en résolu quand j'aurais bien terminé !

ViPHP
AB
ViPHP | 5818 Messages

04 oct. 2010, 18:56

J'ai édité mon message en même temps que tu postais le tiens, je le répète donc : au passage, tu devrais employer mysql_real_escape_string pour toutes tes variables et pas uniquement sur $cookie.

Ensuite prend l'habitude d'écrire tes requêtes avant de les exécuter soit :
$query = "
INSERT INTO vehicule(
                                  key 
                                  , type 
                                  , marque 
                                  , kilometrage 
                                  , immatriculation 
                                  , porte 
                               )
                             VALUES(

                                  '" .mysql_real_escape_string($cookie). "'

                                  , '" . mysql_real_escape_string($_POST["TB_type"]) . "'

                                  , '" . mysql_real_escape_string($_POST["TB_marque"]) . "'

                                  , '" . mysql_real_escape_string($_POST["TB_kilometrage"]) . "'

                                  , '" . mysql_real_escape_string($_POST["TB_immatriculation"]) . "'

                                 , '" . mysql_real_escape_string($_POST["TB_porte"]) . "'

                             )";
//echo $query;
$result = mysql_query($query) or die(mysql_error());
ça te permettra de les faire afficher (echo $query) pour voir si tout se passe bien et si besoin de les faire exécuter directement dans phpmyadmin