Amelioration d'une verif de connection avec des sessions
guisx00
Messages postés104Date d'inscriptiondimanche 23 juillet 2006StatutMembreDernière intervention15 août 2009
-
3 janv. 2007 à 19:08
guisx00
Messages postés104Date d'inscriptiondimanche 23 juillet 2006StatutMembreDernière intervention15 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"
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>
A voir également:
Amelioration d'une verif de connection avec des sessions
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 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 :)
guisx00
Messages postés104Date d'inscriptiondimanche 23 juillet 2006StatutMembreDernière intervention15 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.';
}
?>