problème de connexion

bostak
Invité n'ayant pas de compte PHPfrance

08 déc. 2011, 00:20

Bonsoir,

J'ai un petit soucis de connexion, (voir mon code plus bas) c'est un script qui permet de s’inscrire ou bien si l'on est inscris de pouvoir se connecter. L'inscription fonctionne parfaitement mais lorsque l'on veut se connecter sa refresh ma page mais rien du tout se passe alors que je devrais arriver sur le fichier membre.php. Pourriez vous m'aider ?

index.php :

Code : Tout sélectionner

<?php // on teste si le visiteur a soumis le formulaire de connexion if (isset($_GET['page']) && $_GET['page'] == 'inscription'){ include('inscription.php'); } else { if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') { if ((isset($_POST['users']) && !empty($_POST['users'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) { $base = mysql_connect ('localhost', 'root', ''); mysql_select_db ('blog', $base); // on teste si une entrée de la base contient ce couple users / pass $sql = 'SELECT count(*) FROM users WHERE login="'.mysql_real_escape_string($_POST['users']).'" AND pass="'.mysql_real_escape_string(md5($_POST['pass'])).'"'; $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); $data = mysql_fetch_array($req); mysql_free_result($req); mysql_close(); // si on obtient une réponse, alors l'utilisateur est un membre if ($data[0] == 1) { session_start(); $_SESSION['users'] = $_POST['users']; include('membre.php'); exit(); } // si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son users, 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 = 'Problè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.'; } } ?> <?php } include('accueil.html'); ?>
accueil.php :

Code : Tout sélectionner

<html> <head> <title>Accueil</title> </head> <body> Connexion à l'espace membre :<br /> <form action="index.php" method="post"> login : <input type="text" name="users" value="<?php if (isset($_POST['users'])) echo htmlentities(trim($_POST['users'])); ?>"><br /> Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br /> <input type="submit" name="connexion" value="Connexion"> </form> <a href="index.php?page=inscription">Vous inscrire</a> <?php if (isset($erreur)) echo '<br /><br />',$erreur; ?> </body> </html>
membre.php :

Code : Tout sélectionner

<?php session_start(); if (!isset($_SESSION['login'])) { header ('Location: index.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>
Cordialement,

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

08 déc. 2011, 07:29

Salut,

Ce que tu indique est normal il y a deux problème dans ton script :
- session_start() en double => pas bon tu devrais avoir une erreur, ce qui m'indique que tu devrait sûrement revoir ton error_reporting ;)
- à la validation du formulaire tu créer $_SESSION['login'] et dans membre.php tu cherche l'existence de $_SESSION['user'] donc la condition n'est jais validée ;)

Modifie l'une ou l'autre et ça devrait aller ;)

@+
Il en faut peu pour être heureux ......

bostak
Invité n'ayant pas de compte PHPfrance

08 déc. 2011, 17:18

exactement je m'en suis aperçu mais bien trop tard (après quelques heures à me triturer le cerveau )

merci beaucoup,

Benoit