[PHP] probleme de requete sql

Fermé
Pioup - 30 déc. 2010 à 16:09
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 - 30 déc. 2010 à 20:23
Bonjour,

Je suis débutant en PHP, je cherche alors des tutoriels afin de créer un site lié dynamiquement avec une base de données.

J'ai donc créé un fichier .php pour me connecter à une base de donnée PHPmyadmin qui est en local (j'utilise Wamp). Et là, j'essaye de faire fonctionner une page ou l'utilisateur va s'identifier pour accéder à des fonctions d'administration.

J'ai fais un copier coller d'un tutoriel, en remplaçant juste les champs et la table dans la requete SQL, et j'ai fait un "include" du fichier de connexion.

Le problème, c'est qu'il y a apparemment un problème avec la requete puisqu'il passe dans le "or die" et affiche donc "Erreur SQL...." à l'écran.

Voici le code du fichier PHP qui est lancé après que l'utilisateur ait entré son login/mdp

session_start();
$loginOK = false; 
include("connect.php");

// On n'effectue les traitement qu'à la condition que 
// les informations aient été effectivement postées
if ( isset($_POST) && (!empty($_POST['login'])) && (!empty($_POST['password'])) ) {

  extract($_POST);

  // On va chercher le mot de passe afférent à ce login
  $sql = "SELECT Login_User, MDP-User FROM user WHERE Login_User = '".addslashes($login)."'";
  $req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);
  
  // On vérifie que l'utilisateur existe bien
  if (mysql_num_rows($req) > 0) {
    $data = mysql_fetch_assoc($req);
    
    // On vérifie que son mot de passe est correct
    if ($password == $data['MDP_User']) {
      $loginOK = true;
    }
  }
}

// Si le login a été validé on met les données en sessions
if ($loginOK) {
  $_SESSION['Login_User'] = $data['Login_User'];
}
else {
  echo 'Une erreur est survenue, veuillez réessayer !'; 
}


Et si ça pouvait venir de la connexion, voici le fichier Connect.php

$host = "localhost";  
	$user = "root";
	$bdd = "fmauris";
	$passwd  = "";
// Connexion au serveur
	mysql_connect($host, $user, $passwd) or die("erreur de connexion au serveur");
	mysql_select_db($bdd) or die("erreur de connexion a la base de donnees");
	


Quelqu'un aurait-il une solution à mon problème (je pense que j'ai du faire une erreur stupide quelque part... mais je ne vois pas) ?

Merci d'avance.
A voir également:

1 réponse

avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 500
30 déc. 2010 à 20:23
Salut.

Une base de données PhpMyAdmin ?
PMA est un outil pour gérer les bases de données MySQL
Il n'est pas nécessaire au bon fonctionnement de ce dernier.

Utiliser la fonction extract() est une mauvaise idée.
Dans ce cas, ça peut passer, mais si tu as des variables de configuration par exemple, on pourrait les modifier en faisant une requête POST.

Dans le "or die", remplace $sql par mysql_error() et donne-nous l'erreur complète.
0