Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    problema con le sessioni

    Devo fare un controllo sulle pagine di un sito per vedere se è stata aperta una sessione o no. Xchè a seconda che sia stata aperta o no devo fare vedere dei pulsanti oppure no.
    Quindi qual è una soluzione per fare il controllo sulla sessione?

    Grazie

  2. #2
    io ti consiglio di definire una variabile di sessione $_SESSION['open'] che imposti a TRUE quando la sess è aperta...
    credo che questa sia la soluzione più immediata...
    I'm your dreams, make you real... I'm your eyes when you must steel...I'm pain when you can't feel...sad but true !

  3. #3
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    if (!empty(session_id())

  4. #4
    valvola ti sei dimenticato una parentesi


    cmq io di solito faccio:


    if( isSet( $_SESSION ) == false ) { @session_start() };
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  5. #5
    hornwind,
    per leggere l'array $_session devo scrivere prima session_start() e in questo modo la sessione è aperta....

    VaLvOnAuTa,
    mi da errore su empty, dice che ha bisogno di una variabile...

    andr3a,
    anche nella tua soluzione devo inserire prima session_start(), quindi mi dice che è sempre aperta

    grazie

  6. #6
    quello è ovvio, se non usi session_start() l'array superglobale $_SESSION[] non è nemmeno definito... e lo stesso vale per session_id()... l'uid viene assegnato quando solo si apre una sessione altrimenti la var restituita è vuota.
    I'm your dreams, make you real... I'm your eyes when you must steel...I'm pain when you can't feel...sad but true !

  7. #7
    non hai per caso un esempio veloce da farmi vedere... :-)
    grazie! ciao

  8. #8
    La mia idea, forse più rozza era questa:

    <?
    session_start();

    // Da questo momento la sessione è aperta, per cui è stato assegnato un session_id();

    $_SESSION['open'] = 1;

    ?>

    in qualsiasi altro punto puoi controllare:

    if (isset($_SESSION['open']) && $_SESSION['open'] == 1))
    // allora la sessione è aperta
    else // sessione non aperta

    quando la devi chiudere puoi usare session_destroy();

    Un'alternativa, come ti hanno suggerito, è quella di controllare il SID restituito da session_id();

    I'm your dreams, make you real... I'm your eyes when you must steel...I'm pain when you can't feel...sad but true !

  9. #9
    Ciao.

    In pratica non e' che devi vedere se una sessione e' aperta, perche' lo deve essere, ma di verificare se la sessione attuale sia veramente la stessa aperta in pagine precedenti.

    Non si puo' utilizzare $_SESSION per le ragioni che hai visto. Se apri con session_start questo si trascina dietro il suo $_SESSION, qualunque esso sia, per cui qualunque controllo sara' sempre vero.

    Un modo che garantisce qualcosa in piu' e' utilizzare il database invece del file. C'e' una pillola di gm sulle "sessioni alternative" che ti suggerisco di leggere anche per le informazioni accessorie che contiene.

    http://freephp.html.it/articoli/view_articolo.asp?id=97


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #10
    Originariamente inviato da andr3a
    valvola ti sei dimenticato una parentesi


    cmq io di solito faccio:


    if( isSet( $_SESSION ) == false ) { @session_start() };
    tu hai dimenticato un punto e virgola

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.