PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 22-11-2011 21:44:55

Geff
Membre
Inscription : 22-11-2011
Messages : 1

Script de requête sql renvoi une erreur

BOnjour à tous,

Tout d'abord je souhaite préciser que comme ca touche à la sql mais que mon problème viens surement du script php j'ai donc posté ici et pas dans sql. Et ensuite je remercie par avance les personnes qui prendront le temps de lire et de m'aider smile

Cela fait 3jours a raison de 6/7 par jour que j'en pète sur ce problème.
D'abord je vous le décris:
Mon but est d'apprendre a  coder php donc je me fait un site en local. J'en suis a la création d'un espace membre  donc inscription, login etc... Seulement le login a un sérieu souci. En effet j'envoi le formulaire de connection, mais j'ai toujours la même erreur au niveau du SELECT des infos.
J'ai vérifié j'ai pas d'erreur de syntaxe, les champs désignés sont bien orthographié et présent dans ma table mais.. voila  ^^'

Voici le formulaire de login:

<form action="login.php" method='post'>
   <font class="ltxt">Pseudo</font>
   
    <label for="login"></label>
 
    <div align="center">
      <input type="text" name="login" id="login" />
    <font class="ltxt"><br />
    Mot de passe
    :    </font>
</div>
  <label for="mdp"></label>
  <div align="center">
    <input type="text" name="mdp" id="mdp" />
    <br />
  <input type="submit" name="button" id="button" value="Envoyer" />
  </div></form>
    <font class="ltxt"><br />
    <a href="index.php?page=enreg">Inscription</a></font></div>

Le fichier login vers le quel est envoyé le formulaire:


<?php

  // Connection à la db et séléection de celle-ci
 require ('require.php');
 
 if (isset($_POST['login']) && isset($_POST['mdp'])) {

if ($pseudo==$_POST['login'] && $pass==$pass2) {

            session_start ();
            $_SESSION['login'] = $data['pseudo'];
            $_SESSION['mail'] = $data['mail'];
            $_SESSION['like'] = $data['like'];
            $_SESSION['avatar'] = $data['avatar'];

    include ('login2.php');
}
else {
     print ("merde  mdp form $pass </br>");
     print ("merde mdp db $pass2 </br>");
     print ("merde pseudo db $pseudo</br>");
     print ('merde pseudo form' .$_POST['login']);
   
     }
 }
           
?>

Et pour finir le require au quel je fait référence dans le login:


<?php
 $db = mysql_connect('localhost', 'geff', 'azerty')  or die('Erreur de connexion '.mysql_error());
  $select = mysql_select_db('site',$db)  or die('Erreur de selection '.mysql_error());
  $sql = 'SELECT id,pseudo,mail,motdepasse,like,avatar FROM membres WHERE pseudo = "' . $_POST['login'] . '"';
  $req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);
  $data = mysql_fetch_assoc($req) ;
  $pseudo= $data['pseudo'];
  $pass = md5 ($_POST['mdp']);
  $pass2 = $data['motdepasse'];
?>

Je réencode le pass lors du login car il es encodé en md5 lors de l'inscription

Merci beaucoup pour votre aide encore une fois car la, j'en peu plus de m'acharner dessus.

Ah si je précise un copier coller de l'erreur (message personnalisé dans le code):

Erreur SQL :
SELECT id,pseudo,mail,motdepasse,like,avatar FROM membres WHERE pseudo = "Geff"

EDIT: je viens de lire  apres post les règles de post donc je précise ce que j'ai fait:
Au début j'ai pris le script présent sur le site phpdébutant. Il y en as deux un du tuto espace membre et un autre dans la suite de tuto du site. MAis je sais pas ou je caguais mais ca marchais pas. Du coup jai tout refait a zéro. Ca a marché un temps. Mais d'un coup quand j'ai déco mon login, pour permettre de recharger des variable dans la session  que je venais d'ajouter (avatars) la il ma remis cette erreur. Je me suis donc dit: Bon ce qui merde ne peut pas etre du coté de l'espace membre puisque quand tu te logue il y touche pas encore. Donc j'ai viré les $_session en rapport avec ce que j'avais mis de nouveau a savoir avatars. Plutot que de virer pour pas a voir a remettre si c'était pas ca j'ai mis en commentaire. Mais ca n'a rien changé toujours l'erreur su-citée. Le problème n'est pas mon fichier deco.php car j'avais fait 4 5 déco auparavant et j'avais pu me reloguer. Donc même si je vois pas d'ou viens l'erreur c'est forcément quelque chose que j'ai tripatouiller mais a quel niveau... Je ne sais pas j'ai tout regarder encore de 17h-21h30 sans pouvoir progresser dans la résolution de mon souci. Re merci à vous smile

Dernière modification par Geff (22-11-2011 21:55:40)

Hors ligne

#2 22-11-2011 22:18:10

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Script de requête sql renvoi une erreur

Bonjour,

J'espère que cela va t'aider^^, normalement ca devrait smile

1) Tu traites dans ton require.php la connexion à la db. C'est bien Sauf que t'y vérifies les droits d'accès de l'utilisateur... donc tu fais cela avant de vérifier l'existence des variables passées par ton formulaire.
2) Ce qu'il faut faire avant de développer c'est d'établir le process de connexion et coder dans le même ordre. par ex : 1) je saisie mes identifiants de connexion 2) Je vérifie que les variables sont présentes, sont au bon format 3) tout est ok : je vérifie en DB que le couple login/pwd est connu en db. 3) Si tout est ok alors j'active l'accès au contenu privé.

Or là dans ton code rien est fait dans l'ordre.
Revoie tout ça et à bientôt wink

Jc


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#3 22-11-2011 22:50:15

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Script de requête sql renvoi une erreur

Pour ta requête essaye plutôt comme ceci également


if (isset($_POST['login'])){$login=$_POST['login'];}else{die();}
$sql = "SELECT id,pseudo,mail,motdepasse,like,avatar FROM membres WHERE pseudo = '$login' ";
 

Tu as ainsi l'idée de ce que je te disais en termes de chronologie.


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#4 23-11-2011 00:04:21

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Script de requête sql renvoi une erreur

Saluton,
Autre chose, un détail, certes, mais qui ne manquera pas, un jour de te poser des problèmes.
LIKE est un mot-clé de SQL, c'est donc maladroit de l'utiliser comme nom de colonne.

SELECT id,pseudo,mail,motdepasse,LIKE,avatar
FROM membres
WHERE pseudo ...

Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

Pied de page des forums