erreur SQL sans référence

erreur SQL sans référence - PHP - Programmation

Marsh Posté le 16-02-2005 à 04:41:28    

on cherche à faire un espace membre.
Après une formulaire avec 2 champs: login et mot de passe, le script php nous fais une erreur inexpliqué:
 
Erreur SQL :
SELECT password, Nom, login, Prenom, Id_pers, Projet_noto, Formation, Id_projet_ent, Projet_ent FROM Trombinoscope, Projet_ent WHERE login = 'xxx'
 
Le site est hébergé sur online.net.
Voilà le code source si qqn est capable d'identifier le problème:
 

Code :
  1. <?
  2. // On appelle la session
  3. session_start();
  4. include "base.php";
  5. // Connexion à la base de données
  6. $db = mysql_connect($hotebado,$logbado,$passbado);
  7. mysql_select_db($nombado,$db);
  8. // On n'effectue les traitement qu'à la condition que  
  9. // les informations aient été effectivement postées
  10. if ( isset($_POST) && (!empty($_POST['login'])) && (!empty($_POST['password'])) ) {
  11.   extract($_POST);  // je vous renvoie à la doc de cette fonction
  12.  
  13.   // On va chercher le mot de passe afférent à ce login
  14.   $sql = "SELECT password, Nom, login, Prenom, Id_pers, Projet_noto, Formation, Id_projet_ent, Projet_ent FROM Trombinoscope, Projet_ent WHERE login = '".addslashes($login)."'";
  15.   $req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);
  16.  
  17.   // On vérifie que l'utilisateur existe bien
  18.   if (mysql_num_rows($req) > 0) {
  19.      $data = mysql_fetch_assoc($req);
  20.    
  21.     // On vérifie que son mot de passe est correct
  22.     if ($password == $data['password']) {
  23.       $loginOK = true;
  24.  }
  25.   }
  26. }
  27. // Si le login a été validé on met les données en sessions
  28. if ($loginOK) {
  29.   $_SESSION['password'] = $data['password'];
  30.   $_SESSION['Nom'] = $data['Nom'];
  31.   $_SESSION['login'] = $data['login'];
  32.   $_SESSION['Prenom'] = $data['Prenom'];
  33.   $_SESSION['Id_pers'] = $data['Id_pers'];
  34.   $_SESSION['Projet_noto'] = $data['Projet_noto'];
  35.   $_SESSION['Projet_ent'] = $data['Projet_ent'];
  36.   $_SESSION['Id_projet_ent'] = $data['Id_projet_ent'];
  37.   $_SESSION['Formation'] = $data['Formation'];
  38.  
  39.   if ($_SESSION['Formation'] == "professeur" )
  40.  
  41. {
  42.    echo "Vous êtes bien connectés à notre espace interne ";
  43. echo '<table width="900" border="0" cellspacing="0" cellpadding="4">';
  44.    echo "<tr>";
  45. echo "<td>";
  46. echo "<a href='ges_projet.php'> Gestion de projets </a>";
  47. echo "</td>";
  48. echo "</tr>";
  49. echo "<tr>";
  50. echo "<td>";
  51. echo "<a href='ajou_info.php'> Votre fiche personnelle </a>";
  52. echo "</td>";
  53. echo "</tr>";
  54. echo "</table>";
  55. }
  56. else
  57. {
  58. echo "Vous êtes bien connectés à notre espace interne ";
  59. echo '<table width="900" border="0" cellspacing="0" cellpadding="4">';
  60.    echo "<tr>";
  61.     echo "<td>";
  62. echo "Bonjour $Prenom $Nom";
  63. echo "</td>";
  64. echo "</tr>";
  65. echo "<tr>";
  66. echo "<td>";
  67. echo "<a href='ajou_info_cv.php'> Fo k'j'travaille </a>";
  68. echo "</td>";
  69. echo "</tr>";
  70. echo "<tr>";
  71. echo "<td>";
  72. echo "<a href='ges_projet.php'> Gestion de projets </a>";
  73. echo "</td>";
  74. echo "</tr>";
  75. echo "<tr>";
  76. echo "<td>";
  77. echo "<a href='communautes.php'> 1,2,3 ... Communautés </a>";
  78. echo "</td>";
  79. echo "</tr>";
  80. echo "</table>";
  81. }
  82. }
  83. else if ( isset($_GET) && (!empty($_GET['login']))) {
  84. echo "Vous êtes bien connectés à notre espace interne ";
  85. echo '<table width="900" border="0" cellspacing="0" cellpadding="4">';
  86.    echo "<tr>";
  87.     echo "<td>";
  88. echo "Bonjour $Prenom $Nom";
  89. echo "</td>";
  90. echo "</tr>";
  91. echo "<tr>";
  92. echo "<td>";
  93. echo "<a href='ajou_info_cv.php'> Fo k'j'travaille </a>";
  94. echo "</td>";
  95. echo "</tr>";
  96. echo "<tr>";
  97. echo "<td>";
  98. echo "<a href='ges_projet.php'> Gestion de projets </a>";
  99. echo "</td>";
  100. echo "</tr>";
  101. echo "<tr>";
  102. echo "<td>";
  103. echo "<a href='communautes.php'> 1,2,3 ... Communautés </a>";
  104. echo "</td>";
  105. echo "</tr>";
  106. echo "</table>";
  107. }
  108. else
  109. {
  110. echo "Vos informations ne sont pas correctes ! Veuillez les entrer de nouveau ";
  111. echo "<a href='../index.php'> Retour </a>";
  112. }
  113. ?>


Message édité par ragexen le 16-02-2005 à 04:42:12
Reply

Marsh Posté le 16-02-2005 à 04:41:28   

Reply

Marsh Posté le 16-02-2005 à 09:05:04    

c'est pas une erreur SQL que tu nous a marqué, c'est juste la requete...


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 16-02-2005 à 09:08:12    

Exact, l'erreur c quoi ? :D


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 16-02-2005 à 10:18:20    

esox_ch a écrit :

Exact, l'erreur c quoi ? :D


justement, j'ai erreur tout seul, il ne précise pas quoi  c'est iben le prob :)

Reply

Marsh Posté le 16-02-2005 à 10:20:15    

Citation :


$req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);


 
Il risque pas de te donner l'erreur, là...essaie avec

Citation :


$req = mysql_query($sql) or die('Erreur SQL : <br />'.mysql_error());


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 16-02-2005 à 10:21:15    

J'me trompe ou c'est pas toi qui a ecrit le script ?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 16-02-2005 à 10:22:39    

(et la sélection sur 2 tables sans jointure j'y crois pas des masses...[:dawa])


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 16-02-2005 à 10:23:08    

C'est quoi tout ces echo avec des double-quotes :o Et c'est quoi tous ces tableaux :o

Reply

Marsh Posté le 16-02-2005 à 10:25:25    

FlorentG a écrit :

C'est quoi tout ces echo avec des double-quotes :o Et c'est quoi tous ces tableaux :o


(c'est pas le problème, dehors les intégristes!:o)


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 16-02-2005 à 10:30:49    

skeye a écrit :

(c'est pas le problème, dehors les intégristes!:o)


 
Je crois qu'on est pas à un problème près


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 16-02-2005 à 10:30:49   

Reply

Marsh Posté le 16-02-2005 à 10:31:55    

esox_ch a écrit :

Je crois qu'on est pas à un problème près


On va commencer par l'aider pour la question posée, on verra le reste après, non?[:itm]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 16-02-2005 à 10:37:58    

Tout a fait d'accord, c'est pour ca que j'ai pas fait la meme remarque que Florent, meme si je n'en pense pas moins.  
Mais la visiblement faut lui sortir toute l'artillerie de sites ... Parceque des requetes intertables comme ça je trouve  assez risqué... Personnellement j'utilise tres rarement la commande JOIN , mais je met au moins les identifiant de la table avant le champ ... Sinon on est vite sur un duplicata de champs ...  
 
Site php parceque confondre une variable avec une fonction c'est grave. Else If s'ecrit en 1 mot .
Et site Xhtml / css parcequ'un truc pareil ça fait mal au yeux


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 16-02-2005 à 10:38:52    

c'est clair, un chose à la fois, qu'il fasse déjà la modif de skeye pour avoir l'erreur retournée par MySQL.
 
... une fois que le code fonctionnera, vous pourrez laisser libre court à vos proposition d'amélioration :P


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 16-02-2005 à 10:41:29    

Oui mais avant de faire quoique ce soit je voudrais savoir si c'est lui qui a écrit son script, parcequ'il a l'air de pas etre au courrant de ce qui se passe. Deplus le style d'ecriture utilisé pour son message a l'air different que celui pour les commentaires
 
[Edit] Parcontre j'ai honte, je connaissais pas la fonction extract() .. Je crois que je vais aller bruler mes livres PHP et leur auteurs :p


Message édité par esox_ch le 16-02-2005 à 10:50:02

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 16-02-2005 à 10:43:33    

Personnellement je parie sur une erreur due à l'oubli du préfixage des champs par la table et de la jointure entre ses tables...;)


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 16-02-2005 à 15:20:48    

je partage ton avis skeye...


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 16-02-2005 à 18:20:55    

Merci de vos réponses.
 
Effectivement, je n'ai pas écrit ce script.
c'est pour le site de mon école et c'est une fille du groupe de projet. Moi je ne suis censé m'occuper que du référencement de nos différents sites, mais vu que le développement est à la bourre (entre ce qui bug et ce qui n'est pas fait), j'essaye d'améliorer les choses bien que je n'y connaisse pas grand grand chose en php/sql (j'ai qd meme compris qu'il ne fallait pas de html avant le header pour les sessions; youpi uen erreur de moins).
 
Bon je ramène la développeuse ici, vu que y a pleins de choses à apprendre ;)

Reply

Marsh Posté le 16-02-2005 à 18:37:15    

C'est bien, faut des filles ici :D


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Sujets relatifs:

Leave a Replay

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