Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Login univoco

  1. #1

    Login univoco

    Ledies and Gentleman, ho creato il mio primo scrit tutta farina del mio sacco!
    Ovviamente non funziona come dovrebbe....
    Lo script ha in un array chiavi gli username e valori, il nome reale:
    Codice PHP:
    <?
    $user 
    = array ('wider' => 'luigi',
                    
    'bart' => 'alberto',
                    
    'patryk' => 'patryk',
                    
    'thecore' => 'asdrubale'
                    
    );


    function 
    login( ) {
    print 
    '<tr><td><font face="Tahoma" size="2">Username</font></td><td bgcolor="white"><input name="utente" type="text"></td></tr>';
    print 
    '<tr><td><font face="Tahoma" size="2">Password</font></td><td bgcolor="white"><input name="passwd" type="password"></td></tr>';
    print 
    '<tr><td colspan="2"><p align="center"><input type="submit" value="Accedi"></p></td></tr>';

    }

    print 
    '<table border="1" bordercolor="blue" background="#c0c0c0">';
    if ((
    array_key_exists($_POST['utente'], $user)) && (in_array($_POST['passwd'], $user))) {
    print 
    '<tr><td><font face="tahoma" size="2">';
    print 
    "Benvenuto, " $_POST['utente'] . "!";
    print 
    '
    L\'area di programmazione è in fase di allestimento. Percentuale mancante: 7x'
    ;
    print 
    '</font></td></tr>';

    elseif ((
    array_key_exists($_POST['utente'], $user)) || (in_array($_POST['passwd'], $user))) {
    print 
    "<form name=\"modulo\" action=\"$_SERVER[PHP_SELF]\" method=\"POST\">";
    print 
    '<tr><td colspan="2"><font face="tahoma" size="2" color="red">';
    print 
    "L'username o la password inseriti non sono validi.";
    print 
    '</font></td></tr>';
    print 
    login ();
    } else {
    print 
    "<form name=\"modulo\" action=\"$_SERVER[PHP_SELF]\" method=\"POST\">";
    print 
    login ();
    }
    print 
    '</table>';
    ?>
    il codcie è giusto, funziona bene, però se io metto
    user: wider
    pass: asdrubale
    user: wider
    pass: luigi

    il codice funziona lo stesso... invece di dare errore.
    Qual'è il problema.
    Cristiano
    ---
    Originariamente inviato da rebelia : solo un nerd puo' pensare di tacchinare in un forum di informatica

  2. #2
    In tanto attento agli ' e agli \
    www.bitmade.com Momentan ist richtig_Momentan ist gut_Nicht ist wirklich wichtig_Nach der Ebbe kommt die Flut_ _Am Strand des Lebens_ohne Grund,ohne Verstand_ist nichts vergebens_ich baue di traeume auf den Sand.

  3. #3
    Giusto.... Il test seguente

    codice:
    (array_key_exists($_POST['utente'], $user))  && (in_array($_POST['passwd'], $user))
    da' sempre vero in entrambi i casi da te citati perche' la funzione in_array controlla la presenza del valore $_POST['passwd'] in tutto l'array, indipendentemente dalla chiave....

    ti consiglio invece di implementare il seguente controllo:

    codice:
    (array_key_exists($_POST['utente'], $user))  && ($user[$_POST['utente']]==$_POST['passwd'] )
    oppure compara le stringhe $user[$_POST['utente']] e $_POST['passwd'] con strcmp o un altra funzione di comparazione tra stringhe


    <<E' una decisione molto importante. Pensaci bene, Ataru!>>
    <<STOLTO! Non lo sai che io AGISCO SEMPRE PRIMA DI PENSARE???>>

  4. #4
    Beh credo che quell' IF fatto così com'è risulta vero
    ogni qualvolta immetterai una chiave esistente e un valore esistente nell' array...
    ....questo non significa che ci sia un legame tra i due!
    www.bitmade.com Momentan ist richtig_Momentan ist gut_Nicht ist wirklich wichtig_Nach der Ebbe kommt die Flut_ _Am Strand des Lebens_ohne Grund,ohne Verstand_ist nichts vergebens_ich baue di traeume auf den Sand.

  5. #5
    Per provarlo: wider.altervista.org/login2.php
    Poi, quando ho tempo, modifico... Thx!
    Cristiano
    ---
    Originariamente inviato da rebelia : solo un nerd puo' pensare di tacchinare in un forum di informatica

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.