Visualizzazione risultati 1 fino 27 di 27

Discussione: Problema login

  1. #1
    imoteph non è connesso Utente
    Data registrazione
    05-01-2003
    Messaggi
    147

    Predefinito

    Come faccio a controllare che la password immessa in un form sia esattamente quella abbinata allo user fornito???
    p.s.: la tabella in cui vado a prendere i dati è quella del forum! :D

  2. #2
    Guest

    Predefinito

    SELECT * FROM tabella_utenti WHERE username = '$username' AND password = '$password'

    Se ti restituisce un record la password è giusta.

  3. #3
    imoteph non è connesso Utente
    Data registrazione
    05-01-2003
    Messaggi
    147

    Predefinito

    che scemo!
    Come ho fatto a nn pensarci???
    Forse perchè era notte fonda e la mente nn era + lucida

  4. #4
    imoteph non è connesso Utente
    Data registrazione
    05-01-2003
    Messaggi
    147

    Predefinito

    però nn funziona lo stesso

    ho scritto:
    [code:1:f15e4ec085]$query= "SELECT username, user_password FROM phpbb_users WHERE username = '$user' AND user_password = '$pass'";[/code:1:f15e4ec085]

    e quando stampo a video la variabile $query mi scrive:
    SELECT username, user_password FROM phpbb_users WHERE username = '$user' AND user_password = '$pass'
    sostituendo a $user e $pass i valori che gli ho passato

    ho provato a mettere il mio user (giusto) e la pass (sbagliata) e dice la stessa cosa, poi user (giusto) e pass (giusta), ma stesso risultato

    dove sbaglio ???

  5. #5
    Guest

    Predefinito

    che errore ti da?

  6. #6
    Guest

    Predefinito

    a proposito, hai fatto il digest della password? Se non ricordo male phpbb memorizza il digest...

  7. #7
    imoteph non è connesso Utente
    Data registrazione
    05-01-2003
    Messaggi
    147

    Predefinito

    che cos'è il digest?

    nn mi da errori, ma nella variabile $query, se la stampo a video, contiene questo:
    SELECT username, user_password FROM phpbb_users WHERE username = '$user' AND user_password = '$pass'

    mettendo al posto di $user e $pass quello che gli ho passato
    es:
    SELECT username, user_password FROM phpbb_users WHERE username = 'baubau' AND user_password = 'miciomicio'

  8. #8
    Guest

    Predefinito

    che esca quella roba a video è giusto (cosa volevi che uscisse?)

    adesso non ho tempo per spiegare cos'è il digest, fai finta che sia un modo per criptare una password

    comunque metti questa riga prima della query:
    $pass = md5($pass);


    Fammi sapere

  9. #9
    imoteph non è connesso Utente
    Data registrazione
    05-01-2003
    Messaggi
    147

    Predefinito

    ahhhhh
    si quello l'ho fatto, ma quando creo un nuovo utente
    devo metterlo anche quando vado a pescarlo???

  10. #10
    imoteph non è connesso Utente
    Data registrazione
    05-01-2003
    Messaggi
    147

    Predefinito

    ok, l'ho messo e x la precisione ora il codice è così:
    [code:1:359f3919ac]$pass= md5($pass);
    $query= "SELECT username, user_password FROM phpbb_users WHERE username = '$user' AND user_password = '$pass'";[/code:1:359f3919ac]

    ma come faccio a sapere se la password messa è quella abbinata all' user?
    perchè mi presenta questo
    SELECT username, user_password FROM phpbb_users WHERE username = '***user***' AND user_password = ''***passwd criptata***'
    anche quando metto una passwd sbagliata (cioè la cripta e poi me la fa vedere)

  11. #11
    Guest

    Predefinito

    certo, perché se lo metti quando crei un utente nel database non ci sarà la password ma appunto il suo digest e quindi devi verificare il digest della password e non la password

  12. #12
    imoteph non è connesso Utente
    Data registrazione
    05-01-2003
    Messaggi
    147

    Predefinito

    non c'è un modo per prendere un dato dalla tabella e metterlo in una variabile ???
    Sono sicuro che c'è, ma nn so qual'é

  13. #13
    Guest

    Predefinito

    la vecchia e cara SELECT non ti piace?

  14. #14
    Guest

    Predefinito

    Citazione Originalmente inviato da imoteph
    ma come faccio a sapere se la password messa è quella abbinata all' user?
    perchè mi presenta questo
    SELECT username, user_password FROM phpbb_users WHERE username = '***user***' AND user_password = ''***passwd criptata***'
    anche quando metto una passwd sbagliata (cioè la cripta e poi me la fa vedere)
    cosa volevi dire? perchè dubiti che la password sia quella giusta?

  15. #15
    imoteph non è connesso Utente
    Data registrazione
    05-01-2003
    Messaggi
    147

    Predefinito

    nn è che dubito che la password sia quella giusta, ne sono sicuro
    Perchè sono io stesso a mettercela.
    Mi spiego, c'è una pagina "login.php" che contiene un form in viene chiesta il nome utente ($user) e la password ($pass) poi cliccando su conferma, con metodo 'post' invio i dati alla pagina "conferma.php" che contiene questo codice:
    [code:1:47ec53fd67]<?
    $server= 'localhost';
    $nome_db= 'my_imoteph';

    //apertura connessione al db del forum
    $conn= mysql_connect($server, $user, $passwd) or die ("Connessione a MySql fallita " .mysql_error());

    //verifica connessione avvenuta
    if ($conn)
    print("Connessione al db riuscita<br>");
    else
    die ("Connessione al server fallita<br>");

    //selezione del db
    $sel= mysql_select_db($nome_db,$conn) or die ("Errore nella selezione del db ".mysql_error());

    //controllo se l'utente e la password esistono
    $pass= md5($pass);
    $query= "SELECT username, user_password FROM phpbb_users WHERE username = '$user' AND user_password = '$pass'";
    $ris= mysql_query($query,$conn) or die("Errore nella query: ". mysql_error());
    print($query."<br>");
    ?>[/code:1:47ec53fd67]
    Quando nella pagina login.php metto ad esempio come user "imoteph" e passwd "passwd" (facendo finta che passwd sia quella giusta) voglio prendere la password abbinata a "imoteph" dalla tabella phpbb_users e metterla in una variabile. Se faccio la SELECT, dentro alla variabile nn ci trovo la password, ma ci trovo scritto:
    SELECT username, user_password FROM phpbb_users WHERE username = 'imoteph' AND user_password = '76a2173be6393254e72ffa4d6df1030a
    io invece voglio che dentro alla variabile ci sia scritto solo ed esclusivamente "76a2173be6393254e72ffa4d6df1030a"

    Spero di essermi spiegato abbastanza chiaramente

  16. #16
    imoteph non è connesso Utente
    Data registrazione
    05-01-2003
    Messaggi
    147

    Predefinito

    76a2173be6393254e72ffa4d6df1030a

    è esattamente l'md5 di 'passwd' 8)

  17. #17
    Guest

    Predefinito

    in che variabile stai guardando? in $query?

  18. #18
    imoteph non è connesso Utente
    Data registrazione
    05-01-2003
    Messaggi
    147

    Predefinito

    si

  19. #19
    L'avatar di Evcz
    Evcz non è connesso Utente storico
    Data registrazione
    31-05-2002
    Residenza
    Vicenza
    Messaggi
    5,670

    Predefinito

    devi printare $ris!!!!!!!!!
    There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...

  20. #20
    Guest

    Predefinito

    ma in $query c'è la domanda che fai al database, non la risposta!
    daltronde l'hai riempita tu con quel contenuto
    devi fare la fech dei risultati della query

  21. #21
    imoteph non è connesso Utente
    Data registrazione
    05-01-2003
    Messaggi
    147

    Predefinito

    ok :D
    ho aggiunto
    [code:1:a5d26b746e]print("Ris= ".$ris);[/code:1:a5d26b746e]

    e come output mi da
    Ris= Resource id #4

    che cavolo è?

    Io voglio la password in una variabile così da poterla confrontare con quella che viene fornita nella pagina login.php insieme allo user

  22. #22
    Guest

    Predefinito

    Citazione Originalmente inviato da Evcz
    devi printare $ris!!!!!!!!!
    non è esatto. $ris è un identificativo di risorsa

    fai cos':
    [code:1:9be2a64f1e]while ($row = mysql_fetch_array($ris, MYSQL_NUM)) {
    printf ("username: %s password: %s", $row[0], $row[1]);
    }
    [/code:1:9be2a64f1e]

  23. #23
    imoteph non è connesso Utente
    Data registrazione
    05-01-2003
    Messaggi
    147

    Predefinito

    ok, ho capito
    ora nn ho tempo per provarla
    ma potresti spiegarmi bene cosa fa il codice che hai scritto???
    così se lo capisco oltre che a metterlo è meglio! :D

    che cos'è la fetch?

  24. #24
    Guest

    Predefinito

    quando fai una "domanda" ad un database, questo non ti spedisce la risposta tutta intera ma ti apre un "canale" dal quale estrarre una alla volta le righe che soddisfano la tua domanda.

    il while ha il compito di far proseguire l'estrazione mentre la fetch estrae realmente un record

  25. #25
    imoteph non è connesso Utente
    Data registrazione
    05-01-2003
    Messaggi
    147

    Predefinito

    ok, ora ho capito e ho capito anche che MYSQL_NUM serve per ottenere solo gli indici numerici.

    quello che ora voglio fare è controllare se esiste o meno e dare in uscita un messaggio a seconda del risultato.
    ora il mio codice è così:
    [code:1:bc86e3ced6]$pass= md5($pass);
    $query= "SELECT username, user_password FROM phpbb_users WHERE username = '$user' AND user_password = '$pass'";
    $ris= mysql_query($query,$conn) or die("Errore nella query: ". mysql_error());
    while ($row = mysql_fetch_array($ris, MYSQL_NUM))
    {
    if ($row)
    printf ("username: %s password: %s", $row[0], $row[1]);
    else
    printf("Nome utente o password errata");
    }[/code:1:bc86e3ced6]

    però quando la password è sbagliata non printa niente.

  26. #26
    Guest

    Predefinito

    per forza non printa niente, se sei nel while significa che $row != false (infatti "while ($row..." è la condizione per rimanere nel loop)
    quindi se poi ritesti $row con un if all'interno del ciclo $row sarà necessariamente diverso da false. Fai così (supponendo che la select restituisca un solo record)
    [code:1:f45211b818]if ($row = mysql_fetch_array($ris, MYSQL_NUM))
    printf ("username: %s password: %s", $row[0], $row[1]);
    else
    printf("Nome utente o password errata"); [/code:1:f45211b818]

  27. #27
    imoteph non è connesso Utente
    Data registrazione
    05-01-2003
    Messaggi
    147

    Predefinito

    perfetto :)
    ora funziona alla grande
    grazie per la pazienza :D

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •