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

    Distruggere Singola Session

    Ciao a tutti,

    non riesco a trovare la maniera per distruggere una singola sessione.

    Ad esempio io nel logout che devo eliminare tutto faccio...

    codice:
    <?session_start();
    													 
    	#Reset di tutte le sessioni
    												
    	$_SESSION=array();
    												
            #Distruzione sessioni
    	
    	session_destroy();
    	
    	#Reindirizzamento homepage
    					
    	header("Location: index1.php");
    																														
    ?>
    Però così elimina tutte le sessioni... io invece ad esempio voglio resettare e distruggere una sola sessione ad esempio questa:

    $_SESSION['shop'];

    Come posso fare?

    Grazie
    -------------------------
    ..::`DrUmM\n0`::..
    www.jonathandomenici.com

  2. #2

    Re: Distruggere Singola Session

    Originariamente inviato da drummino^
    Ciao a tutti,

    non riesco a trovare la maniera per distruggere una singola sessione.

    Però così elimina tutte le sessioni... io invece ad esempio voglio resettare e distruggere una sola sessione ad esempio questa:

    $_SESSION['shop'];

    Come posso fare?

    Grazie
    Non si tratta di una singola sessione, ma di un singolo valore della sessione.

    puoi fare come per tutti gli array:

    unset($_SESSION['shop']);


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

  3. #3
    Ho provato ma non mi fa niente... cioè mi rimangono sempre i valori nella sessione.
    -------------------------
    ..::`DrUmM\n0`::..
    www.jonathandomenici.com

  4. #4
    Originariamente inviato da drummino^
    Ho provato ma non mi fa niente... cioè mi rimangono sempre i valori nella sessione.
    Non ho capito che vuoi fare e che cosa vuol dire mi rimangono i valori nella sessione.

    Non vuoi eliminare tutto, ma solo un valore ??? Chiaro che gli altri resteranno...

    unset() come prima, oppure

    S_SESSION['var'] = '';

    nel primo caso elimini l'indice, nel secondo l'indice rimane ma senza valore inserito, cioe' vuoto.

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

  5. #5
    Utente di HTML.it L'avatar di Lucada
    Registrato dal
    Apr 2005
    Messaggi
    176
    Scusate sono sempre io dal nick di un mio amico...

    Io vorrei proprio distruggere la sessione $_SESSION['shop'].

    Voglio proprio che non esista... che se fo


    codice:
    if (!isset ($_SESSION['shop'])) {
    
       echo "non esiste";
    
    } else {
    
      echo "esiste";
    
    }
    Mi deve rispondere "non esiste"...

    E non posso usare il session_destroy(); perchè uso 2-3 sessioni nello stesso istante, quella del login, quella del carrello etc...

    E se fo il destroy mi distrugge tutte le sessioni.

    Se avete ancora dubbi fatemi sapere...

    Bye
    Il vero io è quello che tu sei, non quello che gli altri hanno detto di te. [Paulo Coelho]

  6. #6
    Utente di HTML.it L'avatar di luke83
    Registrato dal
    Jul 2000
    Messaggi
    1,217
    nn posso provare una soluzione come dici te adesso ma se metti

    Codice PHP:
    if ($_SESSION['shop']==FALSE)
    .. 
    nn ti aggrada? e setti false quando nn ti serve più? equivarrebbe ad una distruzione nn trovi? scusa ma ho risposto senza leggere il post hai già provato con l'unset? nisba?
    ..::Luca::..
    » "se nn riesci a venirene a capo.. usa il tasto INVIO" © 2005 Luke83
    » "letta la documentazione, spazio all'immaginazione.." © 2006 Luke83
    [frasi random] - [Lucopedia] - [laFetta]

  7. #7
    Ma quanti e tali.... sono i dubbi...

    Secondo te, tu puoi tenere i piedi in piu' sessioni contemporaneamente.

    Allora non stiamo parlando di php.

    La sessione sara' una sola corrente, e devi essere membro della sessione per poterla distruggere o modificare.
    codice:
    session_start();
    $_SESSION = array();
    session_destroy();
    exit;
    non ha mai fatto prigionieri. Se invece tu intendi dire per sessioni il singolo indice associativo, allora usi dei termini improprii. In questo caso, cioe' che tu voglia distruggere un indice ed il suo valore, dovresti provare questo che segue:
    codice:
    <?php
    session_start();
    $_SESSION['pippo'] = 'pippo';
    $_SESSION['pallo'] = 'pallo';
    
    echo "<pre>";
    print_r($_SESSION);
    
    unset($_SESSION['pippo']);
    if(!isset($_SESSION['pippo']) ) {
    echo "pippo pippo sara' lei 
    "; }
    
    print_r($_SESSION);
    exit;
    ?>


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

  8. #8
    Utente di HTML.it L'avatar di luke83
    Registrato dal
    Jul 2000
    Messaggi
    1,217
    ciao Piero,
    quindi mi confermi che l'unset va bene? Adesso ho anke provato il codice ed almeno a me funge.. mah... io avevo capito che nn andasse bene e ero saltato dalla sedia... il tuo codice è chiarissimo.. e funge soprattutto... nn capisco dov'è il problema.. sarà che forse la dovrei leggere sta discussione
    ..::Luca::..
    » "se nn riesci a venirene a capo.. usa il tasto INVIO" © 2005 Luke83
    » "letta la documentazione, spazio all'immaginazione.." © 2006 Luke83
    [frasi random] - [Lucopedia] - [laFetta]

  9. #9
    Utente di HTML.it L'avatar di Lucada
    Registrato dal
    Apr 2005
    Messaggi
    176
    Sarò l'unico scemo ma a me non funge...

    Comunque si scusami pero.mac usavo dei termini sbagliati... io intendevo il secondo caso che dici...

    Però continua a non andarmi...

    Ti spiego come ho io il codice:


    codice:
    <?
    
    $add = $_GET['id'];
    		
    #Controllo esistenza sessione 'shop'
    							
    IF (!isset($_SESSION['shop'])) { 
    							
       #Controllo se si vuole aggiungere un nuovo prodotto
    								
       if ($add != '') {
    								
          #Se vogliamo aggiungere un nuovo prodotto creiamo la sessione.
    						
          $_SESSION['shop'][] = $add; 
    
          #Stampo il carrello
    
          reset($_SESSION['shop']);
    							
          while (list ($indice,$contenuto) = each ($_SESSION['shop'])) { 
    							
                echo $indice . "," .$contenuto;
          }
    							
       } else {
    
          #Se non si vuole aggiungere nessun prodotto non essendoci nessuna sessione mi dice carrello vuoto.
    						
          echo "Carrello Vuoto!";
       
       }
    
    } else {
    
      echo "Sessione Esistente";
    
      # Se esiste metto un link per cancellare l'intero valore della sessione
    ?>
    Cancella Sessione
    <?
    }
    ?>
    E fin qua tutto oki...

    Io aggiungo dei prodotti al carrello e mi si crea l'array dentro $_SESSION['shop'] me lo visualizza e tutto oki...

    Ah altra cosa.. se non vi torna qualcosa nel codice è perchè non lo ho ricopiato pari pari da come è scritto ma la funzione è quella, senno avrei incasinato troppo la spiegazione.

    Ora tornando a noi...

    Ho il mio bel carrello... vado a cliccare su "svuota carrello" che contiene questo codice:


    codice:
    <?session_start();
    IF (!isset($_SESSION['utente'])) { 
    
    header("Location: index1.php");
    
    } else { 
    
    #Cancellazione Sessione shop
    
    unset($_SESSION['shop']);
    
    #Reindirizzamento alla gestione prodotti
    
    header("Location: carrello.php");
    
    
    }


    In teoria dovrebbe aver resettato tutto aver cancellato la $_SESSION['shop'] e invece torno sulla pagina del carrello e mi ristampa pari pari li stessi valori dell'array, quindi presumo che quell'unset nn abbia fatto niente.

    Lo so è tutto molto incasinato e sicuramente nn ci capirete niente perchè uso anche dei termini impropri, quindi se avete dei dubbi richiedete...

    Grazie Mille per il vostro tempo.
    Il vero io è quello che tu sei, non quello che gli altri hanno detto di te. [Paulo Coelho]

  10. #10
    Potrebbe essere che header location ti rimandi alla nuova pagina in modo continuativo cioe' senza terminare formalmente la pagina corrente con la chiusura del tag php.

    La sessione viene scritta al momento della chiusura della pagina (mi son fatto una cultura per una malf...) e quindi e' probabile che questa scrittura non avvenga.

    Prova a forzare la chiusura prima dell'header location...
    codice:
    #Cancellazione Sessione shop
    
    unset($_SESSION['shop']);
    
    session_write_close();
    
    #Reindirizzamento alla gestione prodotti
    
    header("Location: carrello.php");

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

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.