geekette69
Messages postés4Date d'inscriptionlundi 2 juillet 2007StatutMembreDernière intervention15 avril 2008
-
15 avril 2008 à 13:43
geekette69
Messages postés4Date d'inscriptionlundi 2 juillet 2007StatutMembreDernière intervention15 avril 2008
-
15 avril 2008 à 16:05
Bonjour à tous et désolée par avance de créer une énième discussion concernant l'authentification ...
J'ai lu et me suis inspirée de différentes sources de ce site et mon authentification marche 'presque'.
Voici le code du formulaire de saisie des identifiants :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='fr'>
<head> <link rel 'stylesheet' media 'screen' type = 'text/css' href ='design_formulaire.css' />
<title>Formulaire d'authentification</title>
</head>
$sql_connect = mysql_connect('localhost', 'root', '') or die ('Impossible de se connecter à MySQL');
$db = 'auth_sauvegardes';
mysql_select_db($db, $sql_connect) or die ('Connexion ratée'.mysql_error());
$sql mysql_query ("SELECT login, mdp FROM authentification WHERE login '$login' AND mdp = '$mdp'");
$resultat = mysql_fetch_array($sql);
if(isset($_POST['login']) and isset ($_POST['mdp'])) { // Si on a renseigné un login et un mdp
if($resultat['login'] !== $login) { // Si le login ou le mdp sont différents de ceux de la bdd, un message d'erreur apparaît
$message = 'Login incorrect';
}
elseif ($resultat['mdp'] !== $mdp) {
$message = 'Mot de passe incorrect';
}
else { //Sinon on démarre la session avec le login correct et la voulue s'ouvre
session_start();
$_SESSION['login'] = $_POST['login'];
Une fois que j'ai saisi login et mdp, je suis redirigée sur une page blanche. La seule info que j'ai grâce à un print sur la requête c'est 'Resource ID #3'
Ma BDD se compose comme ça : matricule (id non auto mais unique), nom, prenom, login, mdp
Si vous pouvez m'éclairer ce serait génial!
Merci d'avance
nanti
Messages postés59Date d'inscriptionsamedi 14 avril 2007StatutMembreDernière intervention 2 avril 2010 15 avril 2008 à 14:49
Salut Geekette !!!
Moi aussi je suis débutant en php, mais je vois plusieurs trucs déconnants dans ton code :
- dans ton code html -> mets tes attributs entre doubles quotes.
- tu ne fais pas de requête sur ton submit : if (isset($_POST['submit'])) {} avant de lancer tes vérifications sur tes champs ; pour moi c'est étrange !
- $login et $mdp ne sont pas renseignés : je pense que tu voulais mettre -> $_POST['login'], ...
- et autre truc que je vois : != = -> je ne sais pas si c'est correct ! pour moi c'est plutôt : !=
Maintenant, je te file le code que j'ai pour les authentifications !!! (ne me traitez pas si je donne ma source, c'est pour aider notre amie !!!)
// Si le formulaire est envoyé
if (isset($_POST['envoi'])) {
// Appel de la table et vérification du Mebmre par le login et le pass
if ($sql_01 mysql_query('SELECT * FROM Membres WHERE Login <> "'.$_POST['login'].'" AND Pass "'.$_POST['pass'].'"')
OR die(mysql_error())) {
// Enregistrement du nombre de résultat de la requête SQL
if ($row_01=mysql_fetch_array($sql_01)) {
echo ' Erreur : log in incorrect';
}
}
// Appel de la table et vérification du Membre par le login et le pass
if ($sql mysql_query('SELECT * FROM Membres WHERE Login "'.$_POST['login'].'" AND Pass <> "'.$_POST['pass'].'"')
OR die(mysql_error())) {
// Enregistrement du nombre de résultat de la requête SQL
if ($row=mysql_fetch_array($sql)) {
echo ' Erreur : mot de passe incorrect';
}
}
// Appel de la table et vérification du Mebmre par le login et le pass
if ($sql02 mysql_query('SELECT * FROM Membres WHERE Login "'.$_POST['login'].'" AND Pass = "'.$_POST['pass'].'"')
OR die(mysql_error())) {
$res=mysql_num_rows($sql02);
// Si le résultat de la liste (num-rows) est > ou = à 1
geekette69
Messages postés4Date d'inscriptionlundi 2 juillet 2007StatutMembreDernière intervention15 avril 2008 15 avril 2008 à 15:28
Merci pour ta réponse Nanti !
J'ai corrigé les erreurs que tu as pu constater mais il me redirige toujours vers une page blanche avec marqué 'resource id #3'...
Je te remercie pour ta source mais j'aimerais vraiment y parvenir avec ce que j'ai déjà pû faire d'autant que je suis sûre que c'est une 'merdouille' qui me bloque mais tellement 'merdouilleuse' que je la trouve pas...
Question bête sur ta source : pourquoi tu reprends autant de fois la même requête? (simple curiosité)
nanti
Messages postés59Date d'inscriptionsamedi 14 avril 2007StatutMembreDernière intervention 2 avril 2010 15 avril 2008 à 15:47
Si tu regardes bien, je ne reprends pas exactement la même requête puisque je vérifie d'abord si le login est <> (différent) et pareil pour le mot de passe !!! Ensuite, si l'ensemble est égal, c'est là que je teste le reste pour savoir si le formulaire doit trouver une session d'administration, de membre ou le visiteur n'est pas dans ma bdd.
Sinon, j'ai également une question... Ta connexion à ta bdd et tes vérifications de formulaire sont dans une fonction ??? sinon, par quoi les appelles-tu exactement ????
geekette69
Messages postés4Date d'inscriptionlundi 2 juillet 2007StatutMembreDernière intervention15 avril 2008 15 avril 2008 à 15:53
Non ce n'est pas dans une fonction en fait j'ai déjà les identifiants dans ma base. Quand l'utilisateur veut utiliser l'appli, il tombe sur une fenêtre lui demandant ses identifiants, il les saisit et après le click sur le bouton 'connexion', le script de vérification avec la requête se lance. Je ne sais pas si j'ai bien répondu à ta question ...
Geekette
Vous n’avez pas trouvé la réponse que vous recherchez ?