Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126

    strano comportamento pagina di login..

    Forse però sono io che faccio qualche errore..
    immaginate una pagina di login.. con tanto di campi per username e password.. controllo se l'account esiste nel database e se esiste inizializzo una sessione (session_start() e creo delle varibili di sessione.. ora, quando ritorno alla pagina di login devo ovviamente controllare se il login è già stato fatto.. e quindi controllo se una certa variabile di sessione è stata settata (isset).. però quello che non ho capito è se posso controllare se questa variabile è stata settata senza prima dichiarare il session_start(); o meno.. perchè se devo dichiarare il session_start(); prima del controllo allora non mi spiego come funzionano le sessioni in php.. in quanto se nella pagina di login dichiaro come prima cosa il session_start(), questo mi inzializza una sessione prima di controllare se l'utente esiste o meno nel database

  2. #2
    Per controllare se un utente è loggato è inutile controllare se esiste la sessione.
    Le variabili di sessione, anche quando la sessione è già stata inizializzata, possono essere settate o meno. la sessione nelle pagine seguenti il login va inizializzata comunque, se poi una particolare variabile di sessione, che tu hai designato come controllo per aver effettuato il login, viene trovata non settata o con un valore differente da quello che tu hai stabilito allora signfica che l'utente non è autorizzato.
    "Una volta che si saranno esaurite senza successo tutte le possibilita', ci sara' una soluzione, semplice e ovvia, che saltera' immediatamente all'occhio di chiunque altro."

    Guardate: Il Miracolo delle Noci!!

  3. #3
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    Originariamente inviato da Lathspell
    Per controllare se un utente è loggato è inutile controllare se esiste la sessione.
    Le variabili di sessione, anche quando la sessione è già stata inizializzata, possono essere settate o meno. la sessione nelle pagine seguenti il login va inizializzata comunque, se poi una particolare variabile di sessione, che tu hai designato come controllo per aver effettuato il login, viene trovata non settata o con un valore differente da quello che tu hai stabilito allora signfica che l'utente non è autorizzato.
    il problema è che utilizzo la stessa pagina sia per effettuare il login che per permettere delle modifiche all'utente loggato.. e questo lo faccio con un include..
    Faccio un esempio.. ho un file "default.php" il quale contiene un form per il login, l'utente immette le credenziali e clicca sul pulsante del form, il form rimanda alla stessa pagina "default.php" controllo se è stato passato un campo nascosto e se è stato passato eseguo il codice che controlla l'esistenza dell'account, se l'utente viene trovato creo una sessione (session_start()) e inizializzo delle variabili di sessione, ad un certo punto del codice controllo che una certa variabile di sessione (sono sempre in default.php) sia stata valorizzata, se è stata valorizzata faccio un require di un certo file che contiene un'altro form per la modifica dei dati (e che và a sostituire il form di login ovviamente).. ora l'utente modifica i dati e invia questo form.. e qui mi blocco

  4. #4
    a parte che potresti far puntare il form per la modifica dei dati ad un'altra pagina ( mi sembra che default.php faccia già un sacco di cose ^^) comunque se vuoi che anche il form di modifica punti alla stessa pagina, devi inserire un altro campo nascosto e un controllo per verificare QUALE dei due form che possiedi, login o modifica, è stato inviato e ovviamente l'utente può essere autenticato allo stesso modo per entrambi.
    "Una volta che si saranno esaurite senza successo tutte le possibilita', ci sara' una soluzione, semplice e ovvia, che saltera' immediatamente all'occhio di chiunque altro."

    Guardate: Il Miracolo delle Noci!!

  5. #5
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    Originariamente inviato da Lathspell
    a parte che potresti far puntare il form per la modifica dei dati ad un'altra pagina ( mi sembra che default.php faccia già un sacco di cose ^^) comunque se vuoi che anche il form di modifica punti alla stessa pagina, devi inserire un altro campo nascosto e un controllo per verificare QUALE dei due form che possiedi, login o modifica, è stato inviato e ovviamente l'utente può essere autenticato allo stesso modo per entrambi.
    uhm.. mi sà che seguo il tuo consiglio, altrimenti default.php diventa troppo complessa..

  6. #6
    vedila così, forse no è una soluzione al tuo problema, ma separare il codice in varie pagine può essere utile in futuro per una eventuale riutilizzazione senza grossi cambiamenti...
    "Una volta che si saranno esaurite senza successo tutte le possibilita', ci sara' una soluzione, semplice e ovvia, che saltera' immediatamente all'occhio di chiunque altro."

    Guardate: Il Miracolo delle Noci!!

  7. #7
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    Originariamente inviato da Lathspell
    vedila così, forse no è una soluzione al tuo problema, ma separare il codice in varie pagine può essere utile in futuro per una eventuale riutilizzazione senza grossi cambiamenti...
    bhè si.. ma è proprio la complessità quella che voglio eliminare.. solo che non volevo riscrivere troppo codice html... adesso cmq stò modificando il layout in modo da avere anche dei file separati per l'header e il footer potendoli così riutilizzare in tutte le pagine..

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.