Problème l'ors de la verification du login et mot de passe

mohssine -  
Shadosky Messages postés 7 Statut Membre -
Bonjour,

Je suis débutant en php, j'aimerai réaliser une page de connexion.. avec login et mot de passe.
pour cela j'ai réaliser un formulaire avec html, puis une page verification qui sert a la session.. puis une page login. mais ca marche pas il me dis erreur dans sql..

voici le code login.php


<?php

// On définit les 4 variables nécessaires à la connexion MySQL :
$hostname = 'localhost';
$user = 'root';
$password = '';
$nom_base_donnees = 'admin';

// Connexion au serveur MySQL
$conn = mysql_connect($hostname, $nom_base_donnees, $user, $password) or die(mysql_error());

if(isset($_POST) && !empty($_POST['userlogin']) && !empty($_POST['userpassword']))
{
extract($_POST);
// on recupère le password de la table qui correspond au login du visiteur
$sql = "select password from user where login like '".$_POST['userlogin']."'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

$data = mysql_fetch_assoc($req);

if($data['password'] != $userpassword)
{
echo '<p>Mauvais login ou password. Merci de recommencer</p>';
include('login.htm'); // On inclut le formulaire d'identification
exit;
}
else
{
session_start();
$_SESSION['login'] = $userlogin;

echo 'Vous etes bien logué';
// ici vous pouvez afficher un lien pour renvoyer
// vers la page d'accueil de votre espace membres
include('www.aitham.ma');
exit;
}
}
else
{
echo '<p>Vous avez oublié de remplir un champ.</p>';
include('login.htm'); // On inclut le formulaire d'identification
exit;
}
?>

Si c'est possible de me dire ou est l'erreur et m'expliquer pourquoi ? Mercii :D

1 réponse

  1. Shadosky Messages postés 7 Statut Membre
     
    Je te déconseille l'utilisation de extract() sur des données inconnues, comme les données utilisateurs (i.e. $_GET, $_FILES, etc.).

    Sinon essaye ça le SQL est parfois capricieux sur la syntaxe :

    <?php
    
    	// On définit les 4 variables nécessaires à la connexion MySQL :
    	$hostname = 'localhost';
    	$user     = 'root';
    	$password = '';
    	$nom_base_donnees = 'admin';
    	
    	// Connexion au serveur MySQL
    	$conn = mysql_connect($hostname, $nom_base_donnees, $user, $password) or die(mysql_error());
    	
    	if(isset($_POST['userlogin']) && isset($_POST['userpassword']))
    	{
    		
    		// on recupère le password de la table qui correspond au login du visiteur
    		$sql = "SELECT password 
    		FROM user 
    		WHERE login = '".$_POST['userlogin']."'";
    		$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    
    		$data = mysql_fetch_assoc($req);
    
    		if($data['password'] != $_POST['userpassword']) 
    		{
    			echo '<p>Mauvais login ou password. Merci de recommencer</p>';
    			include('login.htm'); // On inclut le formulaire d'identification
    			exit;
    		}
    		else 
    		{
    			session_start();
    			$_SESSION['login'] = $_POST['userlogin'];
    			
    			echo 'Vous etes bien logué';
    			// ici vous pouvez afficher un lien pour renvoyer
    			// vers la page d'accueil de votre espace membres
    			include('www.aitham.ma');
    			exit;
    		}  
    	}
    	else 
    	{
    		echo '<p>Vous avez oublié de remplir un champ.</p>';
    		include('login.htm'); // On inclut le formulaire d'identification
    		exit;
    	}	
    ?>


    Est-il possible d'avoir l'erreur SQL si cela ne fonctionne toujours pas ?
    0