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

    distruggere sessione solo dopo un evento?

    Ciao a tutti,

    ho ricevuto alcuni aiuti in questo magnifico forum, spero possiate consigliarmi anche stavolta

    si potrebbe dire che sia un novellino in php, cmq stavo creando uno script utilizzando le sessioni, però mi sono bloccato ad un punto perchè: ho 2 pulsanti ("torna indietro" ed "elabora nuovo codice"). Questi due pulsanti riportano tutti e due alla stessa pagina, solo che nel primo caso vorrei che fossero considerate le sessioni, mentre nel secondo no. Come faccio? Come faccio a dare il comando 'session_destroy();' solo quando si clicca sul pulsante "elabora nuovo codice" ?

    Siccome il php lavora sul lato server io penso che sia impossibile, ma spero che voi sapete darmi una soluzione...

  2. #2
    Se il pulsante "torna indietro" e' quello del browser ... ciccia, perche' rivede la pagina in cache.

    Se invece si tratta di un form (oppure un link) mandi ad una pagina che contenga il la scelta tra il redirect immediato oppure il classico logout e rimando alla index ( se form POST, se link GET)

    esempio:

    pagina.php
    Codice PHP:
    <?php


    if(!empty($_POST['torna'] {
           
    header("location: ./pagina_index.php");
           exit; 
           } else  { 
                     
    session_start();
                     
    $_SESSION = array();
                     
    session_destroy();

                     
    header("location: ./pagina_index.php");
                     exit;
                     }
    ?>
    ovviamente nella pagina_index si presume che controllerai $_SESSION per verificare se e' vuoto oppure se valorizzato. Se vuoto rifai il login se valorizzato continuerai nella pagina.

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

  3. #3
    il pulsante torna indietro non era quello del browser, ma visto che utilizzavo il javascript

    Codice PHP:
    javascript:history.back() 
    era cmq la stessa cosa


    ti ringrazio per la risposta, anche se non era quella che mi serviva... cioè io volevo che all'evento che si cliccava sul pulsante si doveva considerare o meno le sessioni... sapendo che il php lavora sul server, immaginavo fosse impossibile...

    cmq ho modificato il mio script in modo che uso la variabile con $S_REQUEST in modo che i due pulsanti rinviino alla stessa pagina, ma se li primo pulsante considera le sessioni, se invece è il secondo non le considera... per quanto riguarda con il comando session_destroy() semplicemente non l'ho messo e tutto funziona lo stesso... (sai dirmi se è proprio necessario metterlo? )

  4. #4
    Originariamente inviato da zn666
    .... per quanto riguarda con il comando session_destroy() semplicemente non l'ho messo e tutto funziona lo stesso... (sai dirmi se è proprio necessario metterlo? )
    Per quello che devi fare tu basta svuotare $_SESSION. Tanto piu' che non chiudendo il browser riprendera' lo stesso session_id di prima.

    Il nocciolo duro e' $_SESSION = array()



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

  5. #5
    Originariamente inviato da piero.mac
    Il nocciolo duro e' $_SESSION = array()


    grazie per la risposta... anche se non l'ho capita ???


    cmq ho risolto, siccome per uscire da quella pagina si esce solo con quei due pulsanti, ho fatto in modo che se si esce con il primo allora quando ricarica la pagina con la S_REQUEST['mode']=1
    fa tutto come prima, mentre se si clicca sul secondo la pagina e si ricarica la pagina precedente con la S_REQUEST['mode']=2 ed io ho messo una condizione che nel caso S_REQUEST['mode']==2 fa un session_destroy()

    quindi è tutto apposto... è per completezza ho messo anche if (!isset(S_REQUEST['mode'])) { session_destroy(); }

    così mi dovrebbe andare perfettamente come volevo io

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.