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 :

Accès à une page avec variable de session


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2014
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2014
    Messages : 123
    Points : 102
    Points
    102
    Par défaut Accès à une page avec variable de session
    Bonjour à tous,

    Voici mon soucis : Je souhaite créer un espace administrateur sur mon site. J'ai donc créé une page (index.php) contenant un formulaire de connexion. Si les identifiants sont dans la base de données, la validation redirige vers une page appelée home.php. Jusque là tout va bien. Sauf que maintenant il faut que je sécurise l’accès à ma page home.php sinon on peut y accéder sans le connecter en tapant son url directement. Voici mon code :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    <form class="connexion" action="" method="post">
            <h2>Connexion à l'espace admin</h2>
            <input type="text" name="pseudo" palceholder="Login" autocomplete="off"/>
     
            <input type="password" name="mot_de_passe" palceholder="Pass" autocomplete="off"/>
     
            <input class="boutonconnexion"type="submit" name="connexion" value="Connexion" />
        </form>
    Code php : 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
     
        <?php
     
        // Durée de vie de la session (Time To Live)
        $ttl = 10;
        session_set_cookie_params($ttl);
        //session.gc_maxlifetime(1800); 30 minutes
        session_start();
        if(isset($_POST['connexion'])) { 
            if(empty($_POST['pseudo'])) {
                echo "Le champ Pseudo est vide.";
            } else {
                if(empty($_POST['mot_de_passe'])) {
                    echo "Le champ Mot de passe est vide.";
                } else {
                    $Pseudo = htmlentities($_POST['pseudo'], ENT_QUOTES, "ISO-8859-1");
                    $MotDePasse = htmlentities($_POST['mot_de_passe'], ENT_QUOTES, "ISO-8859-1");
                    $mysqli = mysqli_connect("localhost", "root", "", "medrano2017");
                    if(!$mysqli){
                        echo "Erreur de connexion à la base de données.";
                    } else {
                        $Requete = mysqli_query($mysqli,"SELECT * FROM admin WHERE login_admin = '".$Pseudo."' AND pass_admin = '".$MotDePasse."'");
                        if(mysqli_num_rows($Requete) == 0) {
                            echo 'Le pseudo et/ou le mot de passe est incorrect';
                        } else {
                            $_SESSION['pseudo'] = $Pseudo;
                            header('Location: home.php');
                        }
                    }
                }
            }
        }
        ?>

    Et voici le bout de code que j'utilise pour vérifier la session :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php 
    if (!$_SESSION['pseudo']) { 
    header('Location: index.php');
    } 
    ?>

    Sauf que ça me redirige tout le temps vers l'index. Quand j'enlève ce bout de code, la connexion s'effectue et la redirection aussi. Je ne comprends pas...

    Merci à tous pour votre aide !

  2. #2
    Membre éprouvé Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 540
    Points : 1 067
    Points
    1 067
    Par défaut
    Salut,
    est-ce que tu as un session_start dans la page qui fait la vérification ?
    Le bienfait n'est jamais perdu

  3. #3
    Membre régulier
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2014
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2014
    Messages : 123
    Points : 102
    Points
    102
    Par défaut
    Citation Envoyé par Willy_k Voir le message
    Salut,
    est-ce que tu as un session_start dans la page qui fait la vérification ?
    Dans la page home.php tu veux dire ? Si oui, non je n'en ai pas.

    Sinon le code de vérification du formulaire se fait dans la même page que le formulaire, c'est à dire sur index.php.

  4. #4
    Membre éprouvé Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 540
    Points : 1 067
    Points
    1 067
    Par défaut
    Je veux parler du home.php, sans session_start la globale $_SESSION n'existe pas donc normal que tu sois redirigé..
    Le bienfait n'est jamais perdu

  5. #5
    Membre régulier
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2014
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2014
    Messages : 123
    Points : 102
    Points
    102
    Par défaut
    Citation Envoyé par Willy_k Voir le message
    Je veux parler du home.php, sans session_start la globale $_SESSION n'existe pas donc normal que tu sois redirigé..
    Ok autant pour moi....
    Merci beaucoup de ton aide et désolé du dérangement !

  6. #6
    Membre éprouvé Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 540
    Points : 1 067
    Points
    1 067
    Par défaut
    Des remarques
    - htmlentities ne protège pas contre les injections SQL et doit être utilisé à l'affichage, utilise mysqli_real_escape_string ou mieux les requêtes préparées
    - Si tu utilises htmlentities pour tes insertions, vire les ça risque de te créer des problèmes
    - Teste plutôt avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (empty($_SESSION['pseudo'])) {}
    pour ne pas te taper les undefined index etc...
    Le bienfait n'est jamais perdu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Importer une page de SESSION Yahoo (cURL)
    Par Stalk3R dans le forum Langage
    Réponses: 16
    Dernier message: 22/11/2010, 17h19
  2. Réponses: 4
    Dernier message: 03/04/2006, 16h40
  3. Perte de Session d'une page à l'autre
    Par Flam dans le forum Langage
    Réponses: 3
    Dernier message: 15/03/2006, 14h34
  4. [Tomcat] session expirée redirection vers une page
    Par Casp dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 19/01/2006, 11h45
  5. Réponses: 13
    Dernier message: 16/04/2004, 12h00

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