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

    controllare se esiste una sessione

    ciao, per controllare se esiste la sessione e se quindi si è arrivati a quella pagina (dove faccio il controllo) dopo che è stato fatto un login andato a buon fine, posso controllare semplicemente se è stata settata una specifica variabile di sessione (tramite isset) che vine valoirizzata unicamente quando viene fatto il login?
    è corretto? o c'è un altro metodo per controllare se esiste una sessione ?
    se è corretto controllare la variabile di sessione, questa devo controllarla prima di session_start(); vero?

  2. #2
    No, una variabile di sessione la puoi controllare dopo avere eseguito la funzione session_start(); perchè altrimenti ti restituirà "";

  3. #3
    Ciao.. addirittura se non metti session_start(); prima di qualsiasi codice dovrebbe darti errore

    Perché il server non può mandare i dati prima di una sessione.. dovrebbe darti un errore tipo sessione già inviata..

    Io per risolvere il problema ho creato un file a parte che mi funziona da sicurezza e me lo porto in giro per ogni pagina.. con un require controllo ogni volta se l'utente esiste nel database altrimenti lo caccio fuori..

    Ciao
    Gestionale aziendale php ?
    Gestionale vendite php ?
    AGUA GEST semplice e pratico e gpl
    by www.grigomax.it
    AMD_64 / Mandriva2007

  4. #4
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    Originariamente inviato da lorenzos
    No, una variabile di sessione la puoi controllare dopo avere eseguito la funzione session_start(); perchè altrimenti ti restituirà "";
    quindi? come faccio a sapere se esiste la sessione?
    perchè nel caso non esista la sessione, quando ad inizio pagina scrivo session_start(); mi inizializzerà una nuova sessione anzicchè recuperare quella esistente.. quindi devo controllare se ne esiste una..

  5. #5
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    Originariamente inviato da grigomax
    Ciao.. addirittura se non metti session_start(); prima di qualsiasi codice dovrebbe darti errore

    Perché il server non può mandare i dati prima di una sessione.. dovrebbe darti un errore tipo sessione già inviata..

    Io per risolvere il problema ho creato un file a parte che mi funziona da sicurezza e me lo porto in giro per ogni pagina.. con un require controllo ogni volta se l'utente esiste nel database altrimenti lo caccio fuori..

    Ciao
    eh cavolo.. questo significa interrogare ogni volta il database a discapito delle prestazioni.. e mi viene da dire che a questo punto potrebbe addirittura essere inutile creare una sessione se ogni volta che devo controllare le pagine protette devo accedere al database..

  6. #6
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    up

  7. #7
    No no hai capito..

    Se vuoi usare le sessioni la prima cosa da fare è session_start();

    Questo non vuol dire far partire una nuova sessione, ma che le vuoi usare..

    Poi tu non fai altro che fare

    $_SESSION['ciao'] = "sono io";

    La sessione dura circa 30 min. poi scade..

    ora puoi verificare con un if exist ma sempre dopo session_start();



    So che quello che ho fatto riguardo al mio programma va un po' al discapito delle prestazioni... infatti un giorno lo riscriverò.. o troverò qualche buona anima che mi dia una mano nel mio progetto visto che dopo tre anni sono ad un punto molto buono.. (anche perche lo uso nella mia azienda da tre anni..)

    Comunque abbiamo la fortuna di avere il php dalla nostra parte.. ed un team di sviluppo anche in italiano..

    guarda qui..
    http://www.php.net/manual/it/function.session-start.php

    ciao..
    Gestionale aziendale php ?
    Gestionale vendite php ?
    AGUA GEST semplice e pratico e gpl
    by www.grigomax.it
    AMD_64 / Mandriva2007

  8. #8
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    Originariamente inviato da grigomax
    No no hai capito..

    Se vuoi usare le sessioni la prima cosa da fare è session_start();

    Questo non vuol dire far partire una nuova sessione, ma che le vuoi usare..

    Poi tu non fai altro che fare

    $_SESSION['ciao'] = "sono io";

    La sessione dura circa 30 min. poi scade..

    ora puoi verificare con un if exist ma sempre dopo session_start();



    So che quello che ho fatto riguardo al mio programma va un po' al discapito delle prestazioni... infatti un giorno lo riscriverò.. o troverò qualche buona anima che mi dia una mano nel mio progetto visto che dopo tre anni sono ad un punto molto buono.. (anche perche lo uso nella mia azienda da tre anni..)

    Comunque abbiamo la fortuna di avere il php dalla nostra parte.. ed un team di sviluppo anche in italiano..

    guarda qui..
    http://www.php.net/manual/it/function.session-start.php

    ciao..
    ah ecco.. un bel if exist $_SESSION['ciao']
    era quello che volevo sapere

  9. #9
    ah ecco.. un bel if exist $_SESSION['ciao']
    era quello che volevo sapere
    Si ma sempre dopo session_start(); altrimenti non credo che restituisca errore, semplicimente ti dirà che la variabile di sessione non esiste... Io facevo lo stesso errore per il log out, distruggevo una sessione dalla pagina logout.php e reindirizzavo in index.php che mi vedeva ancora loggato...

  10. #10
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    Originariamente inviato da lorenzos
    Si ma sempre dopo session_start(); altrimenti non credo che restituisca errore, semplicimente ti dirà che la variabile di sessione non esiste... Io facevo lo stesso errore per il log out, distruggevo una sessione dalla pagina logout.php e reindirizzavo in index.php che mi vedeva ancora loggato...
    ok grazie mille
    anche se non ho capito quale errore facevi.. cioè distruggevi la sessione prima di richiamare session_start();

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.