mysql_query qui ne fonctionne pas

mysql_query qui ne fonctionne pas - PHP - Programmation

Marsh Posté le 28-04-2007 à 08:35:06    

Bonjour, comme mise en situation, je peux dire que j'utilise un forum et que pour utiliser mon site, les gens doivent être membres, je fais donc un doublé, à l'inscription du site, le compte est ajouté à la table des membres du sites et celle des membres du forum (cette méthode était la plus simple).
 
J'ai donc 2 mysql_query de suite, la première fonctionne je peux voir les infos dans la table des membres du site, la 2 eme, même si je recois le message que l'inscription du site s'est bien déroulée, je ne vois pas mes inscriptions dans la table des membres du forum. D'ou vient ce problème, est-ce mon code qui n'est pas ok ?
 

Code :
  1. //Si champs biens remplis on valide et insert
  2. mysql_query("INSERT INTO users SET user='".$_POST['name']."', password='".$_POST['password']."', email='".$_POST['email']."', template='templates', approved='1'" );
  3. $hisname=$_POST['name'] ;
  4. $hispass=$_POST['password'] ;
  5. $hismail=$_POST['email'] ;
  6. $sonmdp = md5($hispass) ;
  7. mysql_query("INSERT INTO softbb_membres SET pseuso='$hisname', mdp='$sonmdp', mail='$hismail', nbpost='0', valid='0', temps='0', tempspost='0', rang='', avatar='avatarup/non-login.gif', localisation='0', www='0', mp='0' , co='0', gmt='0', he='0', sign='0', signaff='0', rangspec='0', affliste='0'" );


 
Je n'y vois pas d'erreurs pourtant ... Le nom de mes tables est ok.
(Je sais, il y a des détours inutiles, entre autres les variables que je nomment en $hisxxxx, ça vient en vient que voyant que ça ne fonctionnait pas, j'Ai essyaé pleins de trucs, et aucuns ne fonctionnaient, donc j'ai posté le code de ma dernière tentative)

Reply

Marsh Posté le 28-04-2007 à 08:35:06   

Reply

Marsh Posté le 28-04-2007 à 10:23:04    

pseuso ou pseudo? :??:


Message édité par drasche le 28-04-2007 à 10:23:27

---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 28-04-2007 à 11:25:59    

pense aussi à mettre les register_globals à OFF parce que ton script est trop sécurisé là, ne tombons pas dans l'excès.  [:pmusa]


---------------
intralase surgery [:cerveau love]
Reply

Marsh Posté le 28-04-2007 à 11:57:15    

+1 avec le n44b du dessus sur la sécurité. De plus je pense qu'il est inutile de dupliquer les informations de la sorte, utilise les fichiers de ton forum sur le site ! Si ça se limite  gérer les identifiants/adresses et la validation, c'est on-ne-peut plus faisable.
 
Pour l'erreur, vérifie bien le nom de l'ordre de tes champs. Les INSERT sont toujours exigeants à ce niveau là, et il est très courant d'oublier un champ ou de mélanger l'ordre d'insertion.

Reply

Marsh Posté le 28-04-2007 à 12:33:14    

sécurité? quelle sécurité? :heink:
 
 
zorro: relis sa syntaxe, ce n'est pas cela le problème.
 
http://dev.mysql.com/doc/refman/5.0/fr/insert.html


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 28-04-2007 à 13:03:45    

drasche a écrit :

sécurité? quelle sécurité? :heink:
 
 
zorro: relis sa syntaxe, ce n'est pas cela le problème.
 
http://dev.mysql.com/doc/refman/5.0/fr/insert.html


Les variables sont directements intégrés dans une req MySQL sans vérif.Un petit coup de ' --  ou autre joyeuseté ca pourrait être dangereux

Reply

Marsh Posté le 28-04-2007 à 13:55:31    

C'est bien ce que je disais mais de plus, modifier register_globals n'influencera en rien l'exécution de ce script.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 28-04-2007 à 20:41:57    

J'avais 2 erreur, c'était pseudo et non pseuso, ainsi que afflist et non affliste.
 
Même corrigé ça ne fonctionne pas!
 
Autre solution ?
Peu être que quelquun peut essayer de me la réécrire autrement pour tester.
 
 

Reply

Marsh Posté le 28-04-2007 à 20:45:26    

Regarde à tout hasard si tu n'as pas d'apostrophe dans les valeurs passées à la requête.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 28-04-2007 à 20:48:29    

C'est fait, et non, mes seules variables que j'ai entré pour testé : polpol comme login, sugared comme mdp, et mon email comme email, le reste ya aucune variable ...
 
:\

Reply

Marsh Posté le 28-04-2007 à 20:48:29   

Reply

Marsh Posté le 28-04-2007 à 21:07:20    

Et que dit mysql_error()? (cf doc)
C'est quand même la moindre des choses que de faire appel à cette fonction quand une requête ne fonctionne pas!


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 28-04-2007 à 21:19:42    

Je crois que l'on est près du problème :
 
mysql_error (que je viens d'ajouter) me reoturne ça :
1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'pseudo='monlogin', mdp='1f0b539445c675b0551acb9b284e40f8', mail=
 
Je ne vois pas plus mon problème par contre ...

Reply

Marsh Posté le 28-04-2007 à 21:23:44    

Ah c'est bon j'Ai toruvé et réglé, maintenant le problème est dans mon md5() je crois ...
Puisque si j'entre mon mot de passe et mon login sur le forum ... Mot de passe invalide ...

Reply

Marsh Posté le 29-04-2007 à 19:29:00    

Un conseil...
Utilise toujours la concaténation dans la construction de tes requêtes...
Et affiche ta requête complete en faisant quelque chose du genre :

Code :
  1. $query = 'SELECT '.$listeDesChamps.' FROM `'.$nomTable.'` WHERE '.$condition.' ORDER BY '.$sortBy ;
  2. $exec = mysql_query($query) or die(mysql_error().' -->> '.$query.'<br />') ;


Message édité par the_bigboo le 29-04-2007 à 19:30:20
Reply

Sujets relatifs:

Leave a Replay

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