[php-mysql] espace sécurisé, password

Résolu/Fermé
sim - 26 févr. 2008 à 21:44
 sim - 27 févr. 2008 à 09:55
Bonjour, voila j'ai une probléme de connexion à ma bdd mysql (je pense).
La connexion ne se fait que pour la premiére ligne de la table, et ça ne marche pas pour les autres.
Voici le code :

<?php 
	session_start(); // initialisation de la variable session 
	echo('<?xml version="1.0" encoding="iso-8859-1"?>'); 
?>

<!DOCTYPE html 
     PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
	
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

  <head>
<title>Zspace membres</title>
	<meta http-equiv="Content-Type" content="text/html ; charset=iso-8859-1" />
    <link rel="stylesheet" media="screen" type="text/css" title="Design" href="styles/design.css" />


</head>

<body>
<?php include('menu.php'); ?>

<div id="content">



<?php 

if ((isset($_POST["password"])) AND (isset($_POST["email"] ))) //on teste si les variables existent
	{ $password == $_POST['password'] ; //la variable mdp prds la valeur de ce qui a été tapé
	  $email == $_POST['email'] ; //la variable pseudo prds la valeur de ce qui a été tapé
	}
	else	//sinon
		{ 
		$mot_de_passe = "" ; //la variable prds la valeur vide
		$email =  ""; //la variable prds la valeur vide
		}
		
		

					mysql_connect("db1dfdsd1.fr", "dbosdf7375794", "0sdfsv44"); // Connexion à MySQL
					mysql_select_db("db22sdfg94"); // Sélection de la base 

// On est connectés, on peut travailler sur la BDD

$reponse = mysql_query("SELECT * FROM membres ") or die(mysql_error()); //TOUT les membres

// On fait une boucle pour lister tout ce que contient la table :

while ($membres = mysql_fetch_array($reponse) ) //créé un tableau ordonné avec TOUT les membres, 
{
if ( ($password == $membres['password']) AND ($email == $membres['email']))
	{ 
	echo('ca marche');
   $_SESSION['email'] = $email; //pseudo correct donc on garde le pseudo dans la var session
   $_SESSION['password'] = $password;  //mot de passe correct donc on garde le pass dans la var session

	include("copyright.php") ;
	exit();  //il faut arrêter la boucle ! sinon ca va se répéter
	}
	else
	{	
	echo('denied');
	include("copyright.php") ;
	exit();  //il faut arrêter la boucle ! sinon ca va se répéter

	}

}



// On a fini de travailler, on ferme la connexion :
mysql_close(); // Déconnexion de MySQL
?>

	
	
</div> <!-- fin de content !-->
</body>
</html>


Merci de votre aide!
A voir également:

2 réponses

ericleclerc1985 Messages postés 644 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 21 août 2008 289
27 févr. 2008 à 03:59
moi j'utilise cette technique et c'est bien écrit je trouve...

Ne pas faire un if else ici dans ta boucle While avec des exit();, car ta recherche s'arrêtera à la première requête. La commande exit(); arrête tout le code et le code suivant ne sera pas pris en compte.

Je tiens à préciser que les données de la base de donnée sont lu comme un tableau dans PHP. Ligne 1, ligne 2, ligne 3.... Une par une. Lorsqu'il ne trouvera plus de ligne qui ressemble à ta requête SQL, il sortira par lui-même du while.

include 'sql_site.php'; // Infos pour se connecter au SQL
$sql = "SELECT PASSWORD,EMAIL FROM membres"; // Code pour choisir la table et les colonnes utilisées
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); // Requête à la base de donnée
while($data = mysql_fetch_assoc($req)) {
	$bd_password = $data['PASSWORD'];
	$bd_email = $data['EMAIL'];
	if($password == $bd_password && $email == $bd_email) {
		$_SESSION['email'] = $email;
		$_SESSION['password'] = $password;
	}
}
mysql_close(); // Fin de la requête SQL

if($_SESSION['email']) include("copyright.php") ; // Si tout est bon
else include("copyright.php") ; // Si le email et le password n'est pas bon

0
ok merci pour tout !
j'ai compris !
0