Page 1 sur 1

Problème d'accès privé

Posté : 28 avr. 2006, 12:10
par lacfab
Salut,

j'ai un petit problème que je n'arrive pas à résoudre ... en deux mots si on rentre n'importe quel mot de passe on entre quand même ...
Des fois on arrive sur une page blanche et il faut actualiser pour entrer. Si on met un faux login là il ouvre une page blanche et pas moyen de voir quelque chose même en actualisant. Déprime total ...
Meric de votre aide :-)

Code : Tout sélectionner

<?php include "config.php"; session_start(); $loginOK = false; $sql = "SELECT * FROM a_gerants WHERE Pseudo='".$Pseudo."'"; $req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql); if ( isset($_POST) && (!empty($_POST['Pseudo'])) && (!empty($_POST['Pass'])) ) { // 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 ($_POST['Pass'] == $data['Pass']) { $loginOK = true; } // Si le login a été validé on met les données en sessions $_SESSION['loginOK'] = 'no'; if ($loginOK) { $_SESSION['Pseudo'] = $data['Pseudo']; $_SESSION['loginOK'] = 'ok'; $_SESSION['Id'] = $data['Id']; ?> <HTML> <head> <title>Administration</title> </head> <frameset rows="70,*" frameborder=0 border=0 framespacing=0> <frame name=a scrolling=no noresize src="secret_menu.php"> <frame name=b src="secret_accueil.php"> </frameset></body> </HTML> <? }}} else { echo "<br><br><br><center><b> ERREUR LORS DE L'AUTHENTIFICATION</b><br><br> <a href='index.php'>Retour</a></center><br><br><br><br>"; } ?>

Posté : 28 avr. 2006, 12:22
par chris3719
essayes ce code :

<?php
include "config.php";
session_start();
if ( isset($_POST['Pseudo']) && isset($_POST['Pass']) ) {
$sql = "SELECT * FROM a_gerants WHERE Pseudo='".$Pseudo."' and Pass='".$_POST['Pass']."'";
$req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);
if (mysql_num_rows($req)==0) {
echo "<script>window.alert('Erreur d\'authentification')</script>";
echo "<script>history.go(-1)</script>";
} else {
?>
<HTML>
<head>
<title>Administration</title>
</head>
<frameset rows="70,*" frameborder=0 border=0 framespacing=0>
<frame name=a scrolling=no noresize src="secret_menu.php">
<frame name=b src="secret_accueil.php">
</frameset></body>
</HTML>
<?
}
} else {
echo "<script>window.alert('Erreur d\'authentification')</script>";
echo "<script>history.go(-1)</script>";
}

Posté : 28 avr. 2006, 12:55
par lacfab
Je suis vraiment un boulet !! Merci j'avais zappé le Pseudo='".$Pseudo."' je suis passé devant une centaine de fois en plus LOL

++

Posté : 28 avr. 2006, 13:12
par Vaedan
Pour information le SELECT * FROM a_gerants est très déconseillé (par moi) ! En effet il pompe un bon nombre de ressource. Contentes toi de SELECT Pseudo, Pass FROM a_gerants.

Posté : 28 avr. 2006, 14:15
par lacfab
Oui je le fais d'habitude mais cette table n'a que Id, Pseudo et Pass comme variable donc je n'ai pas besoin de détailler ... si ?

Posté : 28 avr. 2006, 14:32
par Ryle
Ce n'est pas obligatoire non, mais c'est conseillé non seulement pour des questions de performances, mais aussi parce que l'ordre des champs peut avoir son importance... ca permet également de voir rapidement ce que tu ramènes par rapport à ce que tu utilise ensuite, pouvoir donner des noms plus explicite...

Bref, ce n'est pas indispensable, mais c'est une très bonne habitude à prendre :)