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 :

[Sécurité] login et message d'erreur


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 97
    Par défaut [Sécurité] login et message d'erreur
    Bonjour à tous,

    J'ai repris une FAQ disponible sur ce site concernant l'utilisation des sessions dans un contexte d'authentification avec mot de passe.

    Le fichier principal est login.php, qui comprend une FORM avec deux champs (login et mot de passe) :

    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
    <FORM id='log' ACTION="auth.php3" method="POST" onSubmit='javascript:submit_pass();'>
    <TABLE CELLSPACING="0" BORDER="0">
    <TR>
    <TD WIDTH=20% ALIGN="LEFT" CLASS=ver012>
    Adresse e-mail : \n";
    </TD>
    <TD ALIGN="CENTER" CLASS=ver012>
    <INPUT TYPE="text" CLASS="ver012" NAME='login'>
    </TD>
    </TR>
    <TR>
    <TD WIDTH=20% ALIGN="LEFT" CLASS=ver012>
    Code secret associ&eacute; : \n";
    </TD>
    <TD ALIGN="CENTER" CLASS=ver012>
    <INPUT TYPE="password" CLASS="ver012" NAME='passwd'>
    </TD>
    </TR>
    </TABLE>
    <INPUT type="submit" VALUE="Soumettre ces informations">
    </FORM>
    J'ai aussi un auth.php3 qui fait des tests, qui appelle le fichier login original si il y a une erreur et qui affiche une page protégée si succès.

    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
    <?php
     
    session_start();
     
    if (($_POST['md5']!='') && ($_POST['login']!=''))
    {
      $gd="\"";
      $sg="'";
      $login=$_POST['login'];
      $md5=$_POST['md5'];
      $host='localhost';
      $link = mysql_connect($host,"toto","toto"); 
      $ret = mysql_select_db("toto",$link);
      $query = "SELECT PHOTO_NOM, PHOTO_PATH, CODE_RECH FROM PHOTO_PERS WHERE LOGIN_RECH=".$gd.$login.$gd." AND PHOTO_ACTIVE='Y' ORDER BY NUM_ENREG";
      $result = mysql_query($query);
      if (mysql_num_rows($result) > 0) 
      {  
        $data = mysql_fetch_assoc($result);
        $password=$data['CODE_RECH'];
        if ($md5==md5($password))
        {
          $_SESSION['last_access']=time();
          $_SESSION['ipaddr']=$_SERVER['REMOTE_ADDR'];
          $_SESSION['user']=$login;
          header("Location: ./frmphprs_new.php3");
          die();
        }
        else
        {
          header("Location:./loginphprs.php3");
          die();
        }
      }
      else
      { 
        //echo "Rien trouve dans la base...<br>\n";
        header("Location: ./loginphprs.php3");
        die();
      }
    }
    else
    {
      header("Location: ./loginphprs.php3");
      die();
    }
    //echo "</BODY>\n";
    //echo "</HTML>\n";
    ?>
    Le problème, c'est que je voudrais envoyer un code d'erreur au fichier loginphprs.php3 suivant les différents cas. Ce code d'erreur serait affiché dans cette page originale.

    Dois-je ajouter une info de session ? Dois-je créer une forme dans auth.php3 ? Dois-je implémenter un cookie ?

    Bref, là, je suis sec...

    Merci d'avance de vos conseils.

    Cordialement,

    Philippe.

  2. #2
    Membre émérite Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Par défaut
    Salut

    Ton fichier d'identification, c'est login.php, ou loginphprs.php ?

    Enfin bref, dans tes header, tu fais passer une variable selon le type d'erreur :

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    header("Location:./loginphprs.php3?erreur=type_1");
    Et dans le fichier qui contient le formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if ( (isset($_GET['erreur'])) && ($_GET['erreur'] == "type_1") ) {
    include(‘fichier_erreur_1.php’);}
    ou :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if ( (isset($_GET['erreur'])) && ($_GET['erreur'] == "type_1") ) {
    print("Vous n'êtes pas autorisés à accéder dans mon shop");}

  3. #3
    Inactif
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 97
    Par défaut Mais c'est bien sûr !
    Merci beaucoup !

    Ca fait tellement longtemps que je m'efforce à faire passer les infos en POST, que j'ai oublié que le GET existait !

    Je suis confus et merci beaucoup !

    En fait login.php et loginphprs.php, c'est pareil : je voulais expliquer de la manière la plus simple possible mon problème

    Bon ben j'utilise le get alors

    Merci beaucoup encore et bonne journée !

    Et hop, un post résolu (...quand je disais qu'il y avait que ça de vrai le post ).

  4. #4
    Inactif
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 97
    Par défaut Et en post
    Une toute chtite question :

    Je remarque que le passage de variable est visible dans l'url (ben ouais, c'est normal, c'est un passage en Get ).

    Cependant, j'aimerais que l'url de retour au module loginphprs.php3 ne soit pas visible, et donc, j'aimerais pouvoir passer une varialble en post.

    Voici ma question :

    Y'a-t-il moyen de passer une variable en post juste avant l'appel à la fonction header pour que la fonction appelée par header puisse récupérer le contenu de la dite variable ?

    En bref, comment passer le contenu de l'argument de la méthode GET -> POST ?

    D'avance, je vous remercie grandement des réponses que vous pourrez m'apporter et vous remercie d'ores et déjà pour l'aide fournie.

    Cordialement,

    Philippe.

  5. #5
    Membre émérite Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Par défaut
    Question :

    Comment se nomme ta page principale ?

    Exemple : accueil.php, index.php ?

    [EDIT]... elle a son intérêt.

  6. #6
    Inactif
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 97
    Par défaut Page principale...
    Ma page principale s'appelle index.html...

    Peux tu m'en dire plus, car, pour l'instant, je ne vois pas le rapport

    Veux tu dire par là que je dois changer ma page principale pour ajouter une configuration me permettant de passer des paramètres POST par l'intermédiaire de la fonction header du PHP ?

    Sinon, pour ne pas voir le passage de variable par GET, je pourrais éventuellement créer une page fantome avec un frame 100% à l'intérieur... Ceci dit, il me semble que ce genre de fantaisies n'est que modérément apprécié par le référencement GOOGLE : en effet, cet artefact est communément utilisé pour soumettre des mots clés ne reflétant pas exactement le contenu d'un site

    L'idéal serait donc bien de passer mon argument en POST pour que la fonction appelée par le header puisse récupérer l'info

    Merci de tes réponses.

    Cordialement,

    Philippe.

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

Discussions similaires

  1. Quel est le message d'erreur de Login?
    Par jojo86 dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 13/09/2010, 11h35
  2. Réponses: 4
    Dernier message: 31/05/2010, 08h54
  3. message d'erreur au login
    Par Sh4dow49 dans le forum Linux
    Réponses: 0
    Dernier message: 09/10/2009, 10h19
  4. Les messages d'erreur sur un Login
    Par zooffy dans le forum ASP.NET
    Réponses: 12
    Dernier message: 18/01/2008, 13h55

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