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 :

Connexion à l'espace membre


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2009
    Messages : 81
    Points : 59
    Points
    59
    Par défaut Connexion à l'espace membre
    Bonjour.

    Je tente de créer une formulaire de connexion à un espace membre sur mon site.

    J'ai bien le formulaire d'inscription au site mais une fois le client inscrit dans la BDD je n'arrive pas a créer le formulaire de connexion pour ses visites ultérieures.

    Voici ce que j'ai pour le moment sur ma page de connexion :

    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
     
    <?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']) && !empty($_POST['pass']))) {
     
    		$base = mysql_connect ('serveur', 'login', 'password');
    		mysql_select_db ($database_xxx, $xxx);
     
    		// on teste si une entrée de la base contient ce couple login / pass
    		$sql = 'SELECT count(*) FROM membre WHERE mail="'.mysql_escape_string($_POST['login']).'" AND mdp="'.mysql_escape_string($_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['login'] = $_POST['login'];
    	header('Location: http://www.site.com/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, plusieurs membres utilisent le même identifiant
    	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.';
    	}
    }
    ?>

    et mon formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    Connexion à l'espace membre :<br />
    <form action="membre.php" method="post">
    Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><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="inscription.php">Vous inscrire</a>
    <?php
    if (isset($erreur)) echo '<br /><br />',$erreur;
    ?>
    Quand je valide, j'arrive effectivement à la page membre.php mais elle est toute blanche alors que je lui ai demandé d'afficher un message d'accueil :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php
    session_start();
    if (!isset($_SESSION['login'])) {
    	header ('Location: index.php');
    	exit();
    }
    ?>
    et voici ce que j'ai dans le body :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Bienvenue<?php echo htmlentities(trim($_SESSION['login'])); ?>!<br />
    <a href="deconnexion.php">Déconnexion</a>
    Je ne comprend pas pourquoi cette page membre.php est toute blanche, je pense à une erreur de syntaxe qui fait tout planter pck j'ai rien du tout quand je demande au navigateur d'afficher le code source.

  2. #2
    Membre éclairé Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Points : 831
    Points
    831
    Par défaut
    Bonjour,

    L'action de ton formulaire ne devrait-elle pas rappeler ta page de connexion
    au lieu de basculer directement vers l'espace membre ?

    Fred

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2009
    Messages : 81
    Points : 59
    Points
    59
    Par défaut
    Alors admettons que je remplace action="membre.php" par
    action ="index.php" dans mon formulaire. Ce qui me donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Connexion à l'espace membre :<br />
    <form action="index.php" method="post">
    Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><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="inscription.php">Vous inscrire</a>
    <?php
    if (isset($erreur)) echo '<br /><br />',$erreur;
    ?>
    Alors quand je valide la connexion, je retombe sur ma page index.php, comme si je n'avais pas validé...
    Alors Comment faire pour mettre un message de bienvenue personnalisé sur cette même page après l'authentification du membre?

    Sinon, question appart :

    Peut être que je peux arréter de me prendre la tête avec ces inscriptions et authentifications... Est-il possible de créer un panier virtuel sans passer par l'étape inscription/authentification?
    Ou alors si ce n'est pas possible un paiement direct de l'article sans passer par la case panier (ce qui implique je pense que le client ne pourra pas commander plusieurs articles en même temps)...
    Si oui je suis preneuse à condition qu'au moment du paiement je puisse forcer le client à indiquer nom prénom adresse numéro de tel de facon à le connaitre un peu mieux et avoir un moyen de le joindre en cas de paiement foiré..

    Bon ben j'aurais bien besoin d'éclairages à ce niveau là de ma construction de site.

    Merci de vos conseils.

  4. #4
    Membre éclairé Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Points : 831
    Points
    831
    Par défaut
    Alors quand je valide la connexion, je retombe sur ma page index.php, comme si je n'avais pas validé...
    C'est que $data[0] != 1 et que l'utilisateur n'est pas un membre,
    sinon tu as
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('Location: http://www.site.com/membre.php');
    qui te renvoie vers ta page membre.
    Fred

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2009
    Messages : 81
    Points : 59
    Points
    59
    Par défaut
    Merci de la rapidité de ta réponse...

    Je ne comprend pas vraiment.

    Si la connexion a reussi :
    Comment faut-il faire pour arriver à une page x.php qui contient le message "bienvenue Mr x"

    Sinon retourner à la page index.php (le formulaire de connexion) qui contient le message "ce mot de passe est incorrect" ou qq chose du genre.

    Je suis perdue

    Actuellement je n'ai aucun moyen de vérifier si la connexion à réussi ou pas.

  6. #6
    Membre éclairé Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Points : 831
    Points
    831
    Par défaut
    Voici ce que font tes scripts :
    index.php
    Si les paramètres de connexion existent alors
    Si ils sont corrects alors redirection vers membre.php
    Sinon on prépare un message d'erreur
    Affichage du formulaire (avec message d'erreur éventuellement).

    membre.php
    Si quelqu'un a essayé d'arriver directement sur la page sans se logger alors
    Redirection vers index.php
    Sinon
    Message de bienvenue.
    Proposition de déconnexion.

    ATTENTION :
    Dans ton formulaire, tu as la value de ton submit égale à connexion et à la réception de celui-ci, tu testes $_POST['Connexion'].
    Tu ne dois donc même pas détecter que le visiteur a soumis le formulaire de connexion.
    Écris plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="submit" name="connexion" value="Connexion">
    Fred

Discussions similaires

  1. Connexion impossible espace membre
    Par torg33 dans le forum Langage
    Réponses: 2
    Dernier message: 24/08/2010, 13h50
  2. [MySQL] Connexion espace membre
    Par marygil dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 20/10/2009, 09h25
  3. [MySQL] Problème Connexion Espace Membres
    Par Luisito31 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 21/02/2009, 14h21
  4. [MySQL] connexion à un espace membre
    Par Arthezius dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 15/07/2008, 09h49
  5. [MySQL] Script de connexion (espace membre)
    Par razorlok dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 03/06/2008, 11h41

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