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 :

Protéger ma page par un mot de passe


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Algérie

    Informations forums :
    Inscription : Décembre 2007
    Messages : 49
    Points : 23
    Points
    23
    Par défaut Protéger ma page par un mot de passe
    Bonjour,

    Pourriez-vous me dire ce qui cloche dans mon code?
    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
    34
    35
    36
    37
    38
    39
    40
    41
    ?php
     
    if(isset($_POST) && !empty($_POST['pass']))
     {
     
        extract($_POST);
            if ($pass == "NINA") // donc le  mot de passe saisis sont dans la table
     
       {
        session_start();
     
            $_SESSION['pass']= $pass;
            header("Location:scolarite.php ") ;
     
        echo'<script> alert "Vous etes bien logué";</script>';
     
      }
      else
      {
     
     
     
     
    echo "<script> alert(\"Votre  mot de passe est erroné\")</script>";
     
     
     
     
            include("login_scolarite.htm") ;
            exit;
     
     
     }
    }
    else {
     
       header("Location: login_scolarite.htm") ;
       exit;
    }
     
    ?>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu devrais commencer par nous dire quel point te pose problème.

    A vue d'œil comme ca, la seule chose qui cloche c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    header("Location:scolarite.php ") ;
         echo'<script> alert "Vous etes bien logué";</script>';
    Tu ne peux pas a la fois rediriger la page et écrire quelque chose.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Algérie

    Informations forums :
    Inscription : Décembre 2007
    Messages : 49
    Points : 23
    Points
    23
    Par défaut
    En fait le problème c'est justement il n ya rien qui se passe quand je tape le mot de passe je reste dans la meme page et rien ne se passe il me dirige pas vers la page que je veux

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    je reste dans la meme page
    laquelle ? celle du formulaire ? celle dont tu as mis le code ? ce sont les mêmes ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Algérie

    Informations forums :
    Inscription : Décembre 2007
    Messages : 49
    Points : 23
    Points
    23
    Par défaut
    au fait le code que je vous est affoché est dans une page.php ou est le formulaire et je veux quand je met le bon mot de passe il me dirige vers scolarité.php

    au fait c'est la page scolarite.php aue je veux protéger

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    quand je met le bon mot de passe il me dirige vers scolarité.php
    C'est bien ce qui est ecrit dans ta page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      if ($pass == "NINA") 
       {
             header("Location:scolarite.php ") ;
    Par contre si tu veux proteger scolarite.php, il doit y avoir une partie du mecanisme sur la page scolarite.php ; sinon il suffit d'appeller http://tonsite/scolarite.php pour outrepasser.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Algérie

    Informations forums :
    Inscription : Décembre 2007
    Messages : 49
    Points : 23
    Points
    23
    Par défaut
    DANS SCOLARITE je commence ainsi
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    session_start();
     
    /*
    si la variable de session login n'existe pas cela siginifie que le visiteur
    n'a pas de session ouverte, il n'est donc pas logu� ni autoris� �
    acceder �
    */
    if(!isset($_SESSION['login'])) {
      include("login.htm");
      exit;
    }
    else{.........

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Algérie

    Informations forums :
    Inscription : Décembre 2007
    Messages : 49
    Points : 23
    Points
    23
    Par défaut
    Maintenant j'ai cette erreur :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/scolarite.php:2) in /var/www/scolarite_sans_login.php on line 3

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Algérie

    Informations forums :
    Inscription : Décembre 2007
    Messages : 49
    Points : 23
    Points
    23
    Par défaut
    j'ai mal placé mon session start ou quoi?

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu as quelque chose (du texte, un espace, un retour a la ligne, un header) qui est envoyé dans le fichier scolarite ligne 2.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2008
    Messages : 46
    Points : 41
    Points
    41
    Par défaut
    Salut,

    Ce n'est pas le session start qui ne marche pas mais tu as simplement du Html avant ton header ce qui est interdit.
    Le Html peut se cacher sous une simple forme d'espace


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    //Code ne fonctionnant pas
       <?php // j'ai 3 espace devant Php
    header("Location: login_scolarite.php");
    ?>
     
    //Code correct sans HTML dans le source
    <?php //Pas d'espace ni Html avant le header
    header("Location: login_scolarite.php");
    ?>

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Algérie

    Informations forums :
    Inscription : Décembre 2007
    Messages : 49
    Points : 23
    Points
    23
    Par défaut
    bonjour
    c'est vrai qu'en enlevant les espaces l'erreur a disparu
    mais maintenant en tapant nimporte quoi j'accéde à la page qu je tappe nina ou autre choses.!!
    revoici le code complet:
    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
    if(isset($_POST) && !empty($_POST['pass']))
     {
     
        extract($_POST);
            if ($pass == "NINA") // donc le  mot de passe saisis sont dans la table
       {
    session_start();
    $_SESSION['pass']= $pass;
    header("Location:scolarite_sans_login.php ") ;
      }
      else
      {
    echo "<script> alert(\"Votre  mot de passe est erroné\")</script>";
    include("login_scolarite.htm") ;
            exit;
     }
    }
    else {
       header("Location: login_scolarite.htm") ;
       exit;
    }
    ?>

  13. #13
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Si on tape autre chose que NINA on arrive sur login_scolarite.htm ; si on tape NINA on arrive sur scolarite_sans_login.php
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Algérie

    Informations forums :
    Inscription : Décembre 2007
    Messages : 49
    Points : 23
    Points
    23
    Par défaut
    exact c'est ce que je voudrais oui
    mais dans les deux cas que je tape nina ou pas il me dirige vers scolarite_sans_login.php!!

  15. #15
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    question : tu as bien taper NINA en majuscules ? (il est possible que la comparaison soit sensible à la casse)
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Algérie

    Informations forums :
    Inscription : Décembre 2007
    Messages : 49
    Points : 23
    Points
    23
    Par défaut
    bonjour oui oui je lai tapé en majiscule

  17. #17
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2006
    Messages : 216
    Points : 159
    Points
    159
    Par défaut
    Et n'oublie pas de faire du débuggage, genre ajouter un echo $_SESSION['pass'] (au lieu de rediriger vers une des tes pages, en attendant) pour voir s'il contient bien ce qu'il faut...

    De la même façon, fais afficher "1" ou "0" selon là où tu es, plutôt que te rediriger vers tes pages.

    Ces astuces sont des moyens efficaces de voir où ça cloche plutôt que d'avoir toujours comme réponse "ça merdouille, mais je sais pas où !"
    A faire à CHAQUE étape du script, petit à petit, pour voir où se trouve exactement le problème.

Discussions similaires

  1. Protéger une url par login + mot de passe
    Par grapheyes dans le forum Langage
    Réponses: 1
    Dernier message: 15/04/2011, 09h54
  2. [AC-2003] protéger un formulaire par un mot de passe
    Par spacesheep dans le forum IHM
    Réponses: 3
    Dernier message: 24/02/2010, 16h50
  3. protéger une feuille par un mot de passe
    Par soussie dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 25/01/2009, 17h48
  4. protéger un domaine par un mot de passe
    Par oussam dans le forum Administration
    Réponses: 2
    Dernier message: 09/01/2007, 11h52
  5. [HTML] Protéger un lien par un mot de passe et un login
    Par lyim dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 24/05/2006, 20h08

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