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 :

problème de login "admin"


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé Avatar de batoule80
    Inscrit en
    Février 2007
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 116
    Par défaut problème de login "admin"
    bonjour,
    dans le but de vérifier les accés des utilisateurs te de l'adiminstrateur, j'ai utilisé une fonction filled_out :

    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
     
    <?
     
     
    /*
    -------------------------------------------------------------------------------------
    *Fonction qui vérifie que le formulaire a bien été rempli 
    -----------------------------------------------------------------------------------------
    */
     
    function filled_out($form_vars)
    {
    // Teste si chaque variable contient une valeur.
     
    foreach ($form_vars as $key => $value)
    {
    if (!isset($key)||($value == ''))
    return false;
     
    }
     
    return true;
    }      
     
     
     
    ?>
    dans un autre fichier qui contient le script suivant :

    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
     
    // initialize or retrieve the current values for the login variables
    $loginAttempts = !isset($_POST['loginAttempts'])?1:$_POST['loginAttempts'];
    $formuser = !isset($_POST['formuser'])?NULL:$_POST['formuser'];
    $formpassword = !isset($_POST['formpassword'])?NULL:$_POST['formpassword'];
    if(($formuser != ADMINUSER ) || ($formpassword != ADMINPASSWORD )) {
        if ($loginAttempts == 0) { /* 3 strikes and they're out */
            $_POST['loginAttempts'] = 1;
            include("adminLoginForm.php");
            exit;
        }else{
            if ( $loginAttempts >= 3 ) {
                echo "<blink><p align='center' style=\"font-weight:bold;font-size:170px;color:red;font-family:sans-serif;\">Log In<br>Failed.</p></blink>";        
                exit;
            }else{
                include("adminLoginForm.php");
                exit;
            }
        }
    }
    /* test for valid username and password
    if valid then initialize the session
        register the username and password variables
        and include the ADMINHOME page
    */
    if (($formuser == ADMINUSER ) && ($formpassword == ADMINPASSWORD )) {    // test for valid username and password
        session_start();
        $_SESSION['adminUser'] = ADMINUSER;
        $_SESSION['adminPassword'] = ADMINPASSWORD;
        $SID = session_id();
        $adminHome = ADMINHOME;
        include($adminHome);
    }    
    ?>
    ne connaissant php que depuis quelques temps , je souhaiterai que quelqu'un m'explique si il ya une difference entre ma fonction filled_out et ces deux lignes:

    $formuser = !isset($_POST['formuser'])?NULL:$_POST['formuser'];
    $formpassword = !isset($_POST['formpassword'])?NULL:$_POST['formpassword'];

    pour moi c'est la meme chose mais j'ai des doutes !!

    sinon comment utilser ma fonction ,et récupérer le résultat??

    merci d'avance a tous ceux qui me répondront

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 154
    Par défaut
    Re,

    la fonction Filled_Out que tu montres est directement associée à un tableau de vérification. Si le champs prévus sont correctement remplis, la fonction renvoie true, sinon False.

    Le second exemple est plus nébuleux en fait.

    Cette portion de code est une subtilité du langage PHP

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $loginAttempts = !isset($_POST['loginAttempts'])?1:$_POST['loginAttempts'];
    et pourrais être rédigée de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (!isset($_POST['loginAttempts'])))
       $loginAttempts = 1
    else
       $loginAttempts = $_POST['loginAttempts'];
    Ce n'est donc pas tout à fait le même principe. Tu compares (avec Filled_Out) un tableau par rapport aux variables Post tandis que le code suivant vérifie et affecte d'autres valeurs (si celles-ci n'existent pas) avant d'effectuer un traitement.

    J'ai été assez clair ?

  3. #3
    Membre confirmé Avatar de batoule80
    Inscrit en
    Février 2007
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 116
    Par défaut problème de login "admin"
    merci orgied d'avoir répondu si vite
    la fonction filled_out vérifie si la variable est crée et contient une valeur.

    le deuxième code vérifie si une varible n'éxiste pas alors on la crée :

    $formuser = !isset($_POST['formuser'])?NULL:$_POST['formuser'];
    donc $formuser contient et ma variable et son contenue et j'ai l'impression que c'est la meme chose qu'en haut !!!

    $loginAttempts = !isset($_POST['loginAttempts'])?1:$_POST['loginAttempts'];

    cette variable compte le nombre de tentative qu'un user peut faire :
    si le nom user est != de admin et qu'il ne s'agit pas de son mot de passe , la variable $loginAttempts est incrémentée de 1 .

    pour le code que tu m'as proposé :

    if (!isset($_POST['loginAttempts']))) //
    $loginAttempts = 1

    $loginAttempts ne peut contenir un que si la première tentative a échoué car username et password ne correspondent pas

    je ne sais pas si tu es d'accord avec moi ou pas !!

    merci

Discussions similaires

  1. Problème sur Request.ServerVariables("QUERY_STRING"
    Par PrinceMaster77 dans le forum ASP
    Réponses: 3
    Dernier message: 25/03/2005, 11h47

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