Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Sessioni e form di autenticazione

    Ciao..

    ho un problema fastidioso che non riesco a risolvere....
    La situazione è questa:
    nella mia pagina index.php è presente una form (semplice login con nick e password), che se compilata correttamente permette l'autenticazione al sito.
    Questa form invia i dati usando il metodo post a index.php (quindi alla stessa pagina dove si trova), dove, dopo un controllo sui dati avviene oppure no l'autenticazione.
    In caso si venga autenticati al posto della form appaiono delle informazioni sull'utente ed il pulsante per il logout; fin qui tutto a posto funziona tutto correttamente...

    Il problema è che se una volta autenticato, torno indietro con il browser (e quindi mi riappare la form), se inserisco un nome qualsiasi anche senza la password e invio la form, questo nome prende il posto nella sessione!.
    Non capisco il perchè, ho fatto tutti i controlli possibili ma non riesco a risolvere sto problema!
    Qualcuno saprebbe dirmi il xchè?

    Grazie x l'aiuto!

  2. #2
    Puoi postare il codice che non ho ben capito il problema?
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

  3. #3
    è un po' lungo,
    il problema è che se mi autentico e poi torno indietro con il browser giustamente mi riappare la form, e qui se inserisco un nome e password (anche qualsiasi) questo nome prende il posto della vecchia sessione, anche se la password nn c'è!

  4. #4
    Ma se tu sei un utente loggato, in teoria facendo back non dovresti tornare al form di login finche' non fai un logout. Dentro la sessione devi sempre ricordarti che sei loggato, e in tal caso non stampare il form di login.
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

  5. #5
    Il controllo che faccio per stampare o no la form è:

    if (!isset($_SESSION['nick'])) html_form(); //stampa la form
    else html_dati_autenticati(); //stampa i dati utente

    e infatti funziona, però tornando indietro manualmente col tasto back del browser il controllo nn viene fatto e viene stampata la pagina con la form semicompilata come succede di solito con le form. Però l'autenticazione rimane. La cosa strana è che se rinvio la form (anche vuota) rimango autenticato prendendo come nick la parola che ho inserito nel campo 'nick' della form

  6. #6
    Ma $nick che prendi da $_POST['nick'] del form di login lo metti in $_SESSION['nick'] se e solo se e' andata a buon fine l'autenticazione?
    Mi sembra comunque strano che facendo back il browser ti ripresenta il form anche se sei loggato...ma session_start() lo metti all'inizio di tutto?
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

  7. #7
    DEvi mettere session_start() per ogni pagina php che hai crato senno la sessione si perde e ti succede questo...

    oppure devi controlare che che $_POST(nick) e $_POST(password) siano settati e solo in questo caso fai avviare la funzione della form

    per intenderci IF(isset ($_POST['nick']) && isset($_POST['password']) ) ecc..

    oppure e questo credo faccia al caso tuo devi fare un controllo se l'utente si è già loggato ed in questo caso disabiliti la form di login...

    per intenderci fai una cosa del tipo

    IF(!isset ($_SESSION['nick']) )
    $_SESSION['nick'] = 'ospite';
    //in modo che se cominci una sessione gli dai come nick di default ospite

    //dopodiche :

    IF( $_SESSION['nick']="ospite" )
    {
    //qui scrivi la form che comparirà solo se l'utente non è loggato e risolvi tutti i tuoi problemi!!! ovviamente io la form la metterei dentro ad un div che compaia solo nel caso che ho descritto poco fa
    }


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.