Amelioration d'une verif de connection avec des sessions

guisx00 Messages postés 104 Date d'inscription dimanche 23 juillet 2006 Statut Membre Dernière intervention 15 août 2009 - 3 janv. 2007 à 19:08
guisx00 Messages postés 104 Date d'inscription dimanche 23 juillet 2006 Statut Membre Dernière intervention 15 août 2009 - 3 janv. 2007 à 19:56
Salut à tous et bonne année !!
Voila j'ai crée un petit espace membre seul un problème reste la verification de connection.
Quelqun aurait t'il une idée d'amélioration
Et me dire prk se script ne fonctionne t'il pas
Le formulaire
champs login et password
action="verif.php?action=login"

la page de verif


<?php session_start(); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="css/good.css" />
</head>





<?php
require "config.php";
if($_GET['action'] == 'login')// login
{
$loginOK = 0; // cf Astuce

if ( isset($_POST) && (!empty($_POST['login'])) && (!empty($_POST['password'])) )
{
extract($_POST);

$sql = "SELECT id, pseudo, pass FROM membre WHERE pseudo='".$_POST['login']."' AND pass='".$_POST['password']."'";
$req = mysql_query($sql) or die('Erreur SQL :
'.$sql);

if (mysql_num_rows($req) > 0)
{
$data = mysql_fetch_assoc($req);

if ($password == $data['pass'])
$loginOK = 1;
else
$loginOK = 2; // password inccorrect
}
else
$loginOK = 3; // le membre n'existe pas
}
if ( $loginOK == 1 )
{
$_SESSION['login'] = $data['pseudo'];
echo 'Connection Réussi !!
Vous allez être redirigez vers votre profil';
echo '<meta http-equiv=refresh content=3;URL=index_mbr.php>';
}
else
echo 'Une erreur de connection est survenue, veuillez réessayer !';
}
// logout
else if($_GET['action'] == 'logout')
{
session_unset(); // suppression des variables de sessions
session_destroy(); // destruction de la session
echo 'Déconnection Réussi !!
Vous allez être redirigez vers l\'accueil';
echo '<meta http-equiv=refresh content=3;URL=index.php>';
}
?>


</html>

2 réponses

FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
3 janv. 2007 à 19:22
extract($_POST);
>>> A bannir.

$sql = "SELECT id, pseudo, pass FROM membre WHERE pseudo='".$_POST['login']."' AND pass='".$_POST['password']."'";
>>> Mauvaise requète ... >>>> SELECT COUNT(*) FROM .... WHERE login ... AND pass ...

if (mysql_num_rows($req) > 0)
>>> Plus besoin :
>>>> $data = mysql_fetch_row($query);
>>>> if ( (int)$data[0] === 1 ) { // Couple login/password ok

f ($password == $data['pass'])
$loginOK = 1;
else
$loginOK = 2; // password inccorrect
}
else
$loginOK = 3; // le membre n'existe pas
}
>>> Pourquoi refaire une vérif alors que tu l'a déja fait en SQL ?

>>> Bref, des ptits trucs à revoir, tu fais certaines choses en double. Que tu essayes de séparer PHP et HTML, je veux bien mais pas besoin de doubler ton code :)
0
guisx00 Messages postés 104 Date d'inscription dimanche 23 juillet 2006 Statut Membre Dernière intervention 15 août 2009
3 janv. 2007 à 19:56
oki alors j'ai refais en m'aidant d'un code qui se trv sur le site mais sa ne m'affiche rien quand je me connecte poutant après je peux allez sur les autres pages protéger
<?php session_start(); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="css/good.css" />
</head>





<?php
require "config.php";
if($_GET['action'] == 'log')// login
{
if(eregi("[\^'$()*+<>?#"{}\\]",$_POST['login']) OR eregi("[\^'$()*+<>?#"{}\\]",$_POST['pass']))
{
echo 'Pas de caractères spéciaux';
exit;
}
else
{
$requete=mysql_query("SELECT COUNT(*) FROM membre WHERE pseudo='".$_POST['login']."' AND pass='".$_POST['pass']."'");
$r=mysql_fetch_row($requete);
if($r[0]==1)
{
$_SESSION['login']=$_POST['pseudo'];
echo 'Connection Réussi !!
Vous allez être redirigez vers votre profil';
echo '<meta http-equiv=refresh content=3;URL=index_mbr.php>';
exit;
} } }
else
{
echo 'Vous n\etes pas inscrit.';
}
?>


</html>
0
Rejoignez-nous