Pb d'authentification
Résolu/Fermé
Maskk
Messages postés
89
Date d'inscription
mercredi 1 juillet 2009
Statut
Membre
Dernière intervention
23 décembre 2010
-
3 août 2010 à 09:10
Maskk Messages postés 89 Date d'inscription mercredi 1 juillet 2009 Statut Membre Dernière intervention 23 décembre 2010 - 3 août 2010 à 13:51
Maskk Messages postés 89 Date d'inscription mercredi 1 juillet 2009 Statut Membre Dernière intervention 23 décembre 2010 - 3 août 2010 à 13:51
A voir également:
- Pb d'authentification
- Double authentification google - Guide
- Application d'authentification facebook - Guide
- Désactiver l'authentification à deux facteurs instagram sans se connecter ✓ - Forum Instagram
- Authentification transcash - Forum Consommation & Internet
- Authentification coco par sms - Forum Google Chrome
3 réponses
dariumis
Messages postés
571
Date d'inscription
mardi 16 mars 2010
Statut
Membre
Dernière intervention
18 avril 2018
63
3 août 2010 à 10:09
3 août 2010 à 10:09
Salut, je crois qu'il faut ouvrir le session au tous début du script, l'instruction "session_start(); " doit etre la premiere ligne de la page, si je ne m'embrouille.
Maskk
Messages postés
89
Date d'inscription
mercredi 1 juillet 2009
Statut
Membre
Dernière intervention
23 décembre 2010
2
3 août 2010 à 12:50
3 août 2010 à 12:50
Personne n'a d'idée ?
Maskk
Messages postés
89
Date d'inscription
mercredi 1 juillet 2009
Statut
Membre
Dernière intervention
23 décembre 2010
2
3 août 2010 à 13:51
3 août 2010 à 13:51
Bon j'ai reussi a me depatouiller , pour ceux qui sont interessés :
un premier fichier defaut.php
<?php
function odbc_real_escape_string($string) //Fonction crée pour remplacer mysql_real_escape_string.. prend en compte les apostrophes.
{
$chars = array('NULL', '\x00', '\n', '\r', '\\', "'", '"', '\x1a');
$escapes = array('\NULL', '\\x00', '\\n', '\\r', '\\\\', "''", '\"', '\\x1a');
return str_replace($chars, $escapes, $string);
}
// on teste si le visiteur a soumis le formulaire de connexion
if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {
INCLUDE ('connexion.php');
$condition_req=odbc_real_escape_string($_POST['login']);
$condition_pass=odbc_real_escape_string($_POST['pass']);
// on teste si une entrée de la base contient ce couple login / pass
$sql ="SELECT count(*) AS login FROM membre WHERE (login='$condition_req') AND (pass_user='$condition_pass')";
//$sql ="SELECT count(*) AS login FROM membre WHERE login='".$condition_req."' AND pass_user='".$condition_pass."'";
$req = odbc_do($connexion,$sql) or die('Probleme avec select !<br />'.$sql.'<br />'.odbc_errormsg($req));
$data =odbc_fetch_array($req);
echo $data;
// si on obtient une réponse, alors l'utilisateur est un membre
if (($data['login'] == 1) AND ($data['pass_user'] ==0)) {
session_start();
$_SESSION['login'] = $_POST['login'];
header('Location: membre.php');
exit();
}
// si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
elseif ($data[0] == 0) {
$erreur = 'Compte non reconnu.';
}
// sinon, alors la, il y a un gros problème :)
else {
$erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
}
}
else {
$erreur = 'Au moins un des champs est vide.';
}
}
?>
Mettre dans la page
<form action="defaut.php" method="post">
Nom de l'utilisateur : </td><td><input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"></td></tr>
<tr><td>Mot de passe :</td><td><input type="text" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"></td></tr>
<tr><td> </td><td><input type="submit" name="connexion" value="Connexion"></td></tr>
</form>
Un deuxieme membre.php dans lequel il y a le session()
<?php
session_start();
if (!isset($_SESSION['login'])) {
header ('Location: defaut.php');
exit();
}
?>
<html>
<head>
<title>Espace membre</title>
</head>
<body>
Bienvenue <?php echo htmlentities(trim($_SESSION['login'])); ?>!<br />
<a href="deconnexion.php">Déconnexion</a>
</body>
</html>
Ca vous evitera de chercher pendant 2j comme moi ^^
un premier fichier defaut.php
<?php
function odbc_real_escape_string($string) //Fonction crée pour remplacer mysql_real_escape_string.. prend en compte les apostrophes.
{
$chars = array('NULL', '\x00', '\n', '\r', '\\', "'", '"', '\x1a');
$escapes = array('\NULL', '\\x00', '\\n', '\\r', '\\\\', "''", '\"', '\\x1a');
return str_replace($chars, $escapes, $string);
}
// on teste si le visiteur a soumis le formulaire de connexion
if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {
INCLUDE ('connexion.php');
$condition_req=odbc_real_escape_string($_POST['login']);
$condition_pass=odbc_real_escape_string($_POST['pass']);
// on teste si une entrée de la base contient ce couple login / pass
$sql ="SELECT count(*) AS login FROM membre WHERE (login='$condition_req') AND (pass_user='$condition_pass')";
//$sql ="SELECT count(*) AS login FROM membre WHERE login='".$condition_req."' AND pass_user='".$condition_pass."'";
$req = odbc_do($connexion,$sql) or die('Probleme avec select !<br />'.$sql.'<br />'.odbc_errormsg($req));
$data =odbc_fetch_array($req);
echo $data;
// si on obtient une réponse, alors l'utilisateur est un membre
if (($data['login'] == 1) AND ($data['pass_user'] ==0)) {
session_start();
$_SESSION['login'] = $_POST['login'];
header('Location: membre.php');
exit();
}
// si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
elseif ($data[0] == 0) {
$erreur = 'Compte non reconnu.';
}
// sinon, alors la, il y a un gros problème :)
else {
$erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
}
}
else {
$erreur = 'Au moins un des champs est vide.';
}
}
?>
Mettre dans la page
<form action="defaut.php" method="post">
Nom de l'utilisateur : </td><td><input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"></td></tr>
<tr><td>Mot de passe :</td><td><input type="text" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"></td></tr>
<tr><td> </td><td><input type="submit" name="connexion" value="Connexion"></td></tr>
</form>
Un deuxieme membre.php dans lequel il y a le session()
<?php
session_start();
if (!isset($_SESSION['login'])) {
header ('Location: defaut.php');
exit();
}
?>
<html>
<head>
<title>Espace membre</title>
</head>
<body>
Bienvenue <?php echo htmlentities(trim($_SESSION['login'])); ?>!<br />
<a href="deconnexion.php">Déconnexion</a>
</body>
</html>
Ca vous evitera de chercher pendant 2j comme moi ^^
3 août 2010 à 10:25