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

PHP & Base de données Discussion :

pb d'identification (session je crois)


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 21
    Par défaut pb d'identification (session je crois)
    Bonjour,
    Mon probleme est simple.
    A partir d'un formulaire l'utilisateur peut acceder a son compte(securise)

    Mon probleme est que je n'arrive pas a acceder a la page pub(espace membre).
    JE crois que tout est ds des fonctions comme necessite_identification et is_identifie(Que j'ai pas ou/et je n'arrive pas a faire)

    voila mon code ;

    Le formulaire(qui marche bien)
    Code html : 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
    <div class="element_menu">
                 <div id="sous_menu"><img src="images/stars.jpg" width="30" height="20" border="0" align="left" /> <h3>Pro access</h3> </div>
     
     
             <form method="post" action="<?=$_SERVER['PHP_SELF']?>?action=log">
       <p>
           <label for="Username">Username :</label>
           <input type="text" name="login" id="login" style="width:120px"  />
     
           <br />
           <label for="Password">Password :</label>
           <input type="password" name="pass" id="pass" style="width:120px" />
     
       </p>
       <p>
           <input type="submit" value="Login"/>
       </p>
    </form></div>
    <?php if (isset($message_erreur)) {echo "<p class=\"errorMessage\">".$message_erreur."</p>";}?>
     
    </div>

    CE qui se passe quand on valide:
    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
    <?php if (est_identifie()) {
     
                    $goto = "./pubs.php";
     
            header("Location: ".$goto);
            die;
    }
    ?>
    <?php
    $message_erreur = "";
    if (isset($_GET['action']) && $_GET['action'] == "log")
    {
     
            $login=addslashes($_POST['login']);
            $pass=addslashes($_POST['pass']);
            $utilisateur = verifier_authentification($login,$pass);
            if ($utilisateur) {
                    $_SESSION['utilisateur'] = $utilisateur;
                    $_SESSION["ip"] = $_SERVER['REMOTE_ADDR'];
                    $_SESSION["url"] = $_SERVER['HTTP_HOST'];
     
                    /*
                     * Si wantsurl est défini, alors on se redirige vers cette page sinon
                     * on revient à la page d'accueil
                     */
     
                    if (empty($_SESSION['wantsurl'])) {
     
                                    $goto = "./pubs.php";
     
                    } else {
                            $goto = $_SESSION['wantsurl'];
                    }
     
                    header("Location: ".$goto);
                    die;
     
            } else {
     
                    $message_erreur .= "Login et/ou mot de passe incorrect(s) - Veuillez essayer à nouveau.";
            }
    }
    ?>
    les fonctions que j'utilise:
    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
    58
    59
    60
     
    <?PHP
     
     
     
    function est_identifie() {
     
    /* Retourne true si l'utilisateur des identifie */
     
    global $SESSION, $REMOTE_ADDR;
     
    return isset($SESSION)
     
    && isset($SESSION["login"])
     
    && isset($SESSION["ip"])
     
    && $SESSION["ip"] == $REMOTE_ADDR;
     
    }
     
    function necessite_identification() {
     
    /* Cette fonction vérifie si l'utilisateur est identifié. Si non affiche
    
    * l'écran d'authentification avant de laisser l'utilisateur continuer */
     
    global $SESSION, $dossier_www, $PHP_SELF;
     
    if (! est_identifie()) {
     
    $SESSION["wantsurl"] = $PHP_SELF;
     
    echo "Access denied!!!!!!";
     
    die;
     
    }
     
    }
    function verifier_authentification($login, $pass) {
     /* Vérifie le nom d'utilisateur et le mot de passe. S'ils sont valides, renvoie un
     * tableau avec les infos de l'utilisateur */
     
     $requete = "SELECT * FROM Users WHERE username = '$login' AND password = '$pass'";
     $qid = mysql_query($requete)
      or die("Erreur lors de l'exécution de la requête111111: ".mysql_error());
     
     $num=mysql_num_rows($qid);
     
     if (mysql_num_rows($qid) ==1 ) {
     
     return mysql_fetch_array($qid);
     }
     else {
     
     return;
     }
     }
    ?>
    Resultat,j'arrive bien a me connecter puisque j'ai une redirection vers pubs.php,mais vu que pubs.php commence par necessite_identification();
    J'ai le message d'erreur access denied!!!! Preuve que je ne suis pas identifier.
    Est ce que quelqu'un aurait un conseil a me donner pour me debloquer!!!!
    Merci beaucoup
    (dsl pour les accents j'utilises un clavier anglais lol)

  2. #2
    Membre chevronné Avatar de beejeridou
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Février 2007
    Messages : 280
    Par défaut
    Le code m'a l'air bien brouillon...

    Bref, admettons que ton code fonctionne, et que tu arrive bien à te connecter (donc tes identifiants sont bons), c'est que ta session n'est pas gardé en mémoire.
    As tu pensé à initialiser les sessions avec la fonction session_start()?

    Cette fonction est à utiliser en tout début de fichier php, avant tout caractère HTML.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 21
    Par défaut
    oui,voici le debut de pubs.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
    <?php
    session_start();//jai essaye ici aussi
     
    require_once("config_bdd.php");//connexion a la bdd
    require_once("fonctions.php");//les fonctions
     
    necessite_identification(); //LA fonction qui foire tout je crois
     
    session_start();
     
    $connect_db = connect();
     
     
     
    ?>

  4. #4
    Membre chevronné Avatar de beejeridou
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Février 2007
    Messages : 280
    Par défaut
    Tu as besoin de mettre session_start() qu'une seule fois par fichiers.

    Sinon il ne t'affiche aucun message d'erreur à part acces denied ? ??

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 21
    Par défaut
    Tout d'abord,pour le brouillon c'est juste que j'ai pris la partie de l'acces membre(la page comprend d'autres dossiers)
    Bien sur,la session start n'apparait qu'une fois
    Et oui ca ne m'affiche que le message d'erreur de la fonction necessite_identification();

    Merci pour tout

Discussions similaires

  1. creation d'une identification session
    Par new-root dans le forum Langage
    Réponses: 5
    Dernier message: 12/01/2011, 18h22
  2. Récuperer identifant session depuis une BDD
    Par pi-2r dans le forum Langage
    Réponses: 3
    Dernier message: 21/11/2010, 14h56
  3. Probleme de Session (je crois)
    Par Netah dans le forum ASP.NET
    Réponses: 5
    Dernier message: 28/07/2009, 16h25
  4. Réponses: 13
    Dernier message: 25/05/2006, 04h13
  5. Probleme d'identification avec sessions PHP
    Par bontbont dans le forum Langage
    Réponses: 5
    Dernier message: 09/12/2005, 19h15

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