IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Gestion d'un espace membre


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2014
    Messages : 15
    Points : 8
    Points
    8
    Par défaut Gestion d'un espace membre
    Bonjour, je suis actuellement étudiante en école d'ingénieur (pas d'informatique malheureusement, vous l'aurez compris ) et je fais partie du bureau d'étudiant. Comme j'aime beaucoup apprendre de nouvelles choses, je me suis lancée dans la construction de notre site Web.
    J'ai donc appris toute seule et jusqu'ici tout fonctionnait bien jusqu'à ce que je me lance dans l'espace membre...
    J'ai donc créées 4 pages : la page de connexion, la page d'inscription, la page personnelle et la page de déconnexion.
    Je veux voux préciser aussi que cet espace membre est un espace membre restreint, seules les personnes présentes dans la base données pourront s'y connecter.

    La page d'inscription fonctionne à merveille, les erreurs qui s'affichent correspondent bien aux erreurs réalisées.
    Quand je lance mon inscription, les données vont bien s'insérer dans ma base de données à la seule exception que je souhaite crypter les mots de passe en MD5 et lorsque j'utilise des sites tels que : http://www.md5.fr/, je n'obtiens pas le meme code que celui qui a été généré dans ma base de données... Mais sinon ça marche
    Voici le script de la page "inscription.php" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    <?php
     
    if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {
     
    	if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) {
     
    	if ($_POST['pass'] != $_POST['pass_confirm']) {
    		$erreur = 'Les 2 mots de passe sont différents.';
    	}
    	else {
    		$base = mysql_connect ('localhost', 'root', 'root');
    		mysql_select_db ('Cercle ENSCCF', $base);
     
     
    		$sql = 'SELECT * FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'"';
    		$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    		$data = mysql_fetch_array($req);
     
    		if ($data['login'] != NULL && $data['pass_md5'] == NULL) {
    		$sql = 'UPDATE membre SET pass_md5="'.mysql_escape_string(md5($_POST['pass_md5'])).'" WHERE login ="'.mysql_escape_string($_POST['login']).'"';
    		mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
     
    		session_start();
    		$_SESSION['login'] = $_POST['login'];
    		header('Location: espace membre/membre.php');
    		exit();
    		}
    		elseif($data['login'] == NULL) {
    		$erreur = 'Vous n\'êtes pas autorisé à accéder à cet espace membre.';
    		}
    		elseif($data['pass_md5'] != NULL) {
    		$erreur = 'Cette personne possède déjà un compte.';
    		}
    	}
    	}
    	else {
    	$erreur = 'Au moins un des champs est vide.';
    	}
    }
    ?>
    <html>
    <head>
    <title>Inscription</title>
    </head>
     
    <body>
    <form action="inscription.php" method="post">
    <strong>E-mail :</strong> <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
    <strong>Mot de passe :</strong> <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
    <strong>Confirmation du mot de passe :</strong> <input type="password" name="pass_confirm" value="<?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>"><br />
    <center><input type="submit" name="inscription" value="Inscription"></center>
    </form>
    <?php
    if (isset($erreur)) echo '<br />',$erreur;
    ?>
    </body>
    </html>


    Pour ce qui est de la page de connexion, là, c'est plus embetant...
    En utilisant le login et le mot de passe précédemment rentrés lors de l'inscription, j'obtiens l'erreur "Au moins un des champs est vide"... Je n'arrive pas a comprendre. Je pensais que c'était le fait que mon cryptage était faux donc j'ai modifié le md5 directement dans ma base de données et j'ai réessayé : pas mieux...
    Si vous voyez une erreur qui aurait pu m'échapper, je suis preneuse mais là, je commence vraiment à m'arracher les cheveux ^^
    Voici le script de la page "accueil.php" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    <h1>Espace membres</h1>
    <?php
    // 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_md5']) && !empty($_POST['pass_md5']))) {
     
    	$base = mysql_connect ('localhost', 'root', 'root');
    	mysql_select_db ('Cercle ENSCCF', $base);
     
    	// on teste si une entrée de la base contient ce couple login / pass
    	$sql = 'SELECT * FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.mysql_escape_string(md5($_POST['pass_md5'])).'"';
    	$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['login'] != NULL) {
    		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['login'] == NULL) {
    		$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.';
    	}
    }
    ?>
    <html>
    <head>
    <title>Accueil</title>
    </head>
    <body>
    <br />
    <form action="accueil.php" method="post">
    <p class="login"><strong>Login :</strong></p> <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
    <p class="mdp"><strong>Mot de passe :</strong></p> <input type="password" name="pass" value="<?php if (isset($_POST['pass_md5'])) echo htmlentities(trim($_POST['pass_md5'])); ?>"><br />
    <input type="submit" name="connexion" value="Connexion">
    </form>
    <a href="inscription.php">S'inscrire</a>
    <?php
    if (isset($erreur)) echo '<br /><br />',$erreur;
    ?>
    </body>
    </html>
    Je vous remercie d'avance de votre aide
    Clémence.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 101
    Points : 144
    Points
    144
    Par défaut
    Salut,

    Dans ton formulaire d'identification, tu envoies un input "pass" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="password" name="pass" value="<?php if (isset($_POST['pass_md5'])) echo htmlentities(trim($_POST['pass_md5'])); ?>">
    Et tu vérifies dans les $_POST un input "pass_md5" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass_md5']) && !empty($_POST['pass_md5']))) {
    Donc forcement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $erreur = 'Au moins un des champs est vide.';
    Remarque :

    Ton code me fais étrangement pensé à celui déjà corrigé dans ce post
    http://www.developpez.net/forums/d14...-correctement/

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2014
    Messages : 15
    Points : 8
    Points
    8
    Par défaut Toujours pas...
    Rebonjour, merci de ta réponse rapide, malheureusement en modifiant ce que tu dis, mon md5 n'est toujours pas correct dans me base de données et on m'affiche toujours l'erreur "Au moins un des champs est vide"...
    A la limite que cela affiche toujours la meme erreur, ok... Mais que l'encryptage ne se fasse pas correctement en md5 je trouve ça très bizarre...
    Merci encore,
    Clémence

Discussions similaires

  1. Réponses: 197
    Dernier message: 27/04/2021, 00h11
  2. [PHP 5.0] gestion espace membres
    Par santiago17 dans le forum Langage
    Réponses: 9
    Dernier message: 26/05/2013, 18h45
  3. [Système] Gestion d'espace membre
    Par pas30 dans le forum Langage
    Réponses: 8
    Dernier message: 22/07/2007, 15h22
  4. Script gestion espace membre
    Par debutant_linux dans le forum Langage
    Réponses: 5
    Dernier message: 05/04/2007, 10h48
  5. [Sécurité] Gestion d'espace membre
    Par pas30 dans le forum Langage
    Réponses: 11
    Dernier message: 26/12/2006, 19h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo