Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885

    cancellazione sessione identica dal database , non comprendo la stringa

    ciao a tutti, ho una difficoltà (tanto per cambiare)

    mi hanno passato una classe per il login
    codice:
    	// se username e password esistono registro la sessione 
    				if (($array['username'] == $_POST['username']) && ($array['password'] == $_POST['password'])) 
    				{ 
    				// cancello le sessioni doppie 
    				$sql_delete = "DELETE FROM sessions WHERE id_sess='{$id_sess}' OR UNIX_TIMESTAMP(NOW()) - last_action = global $_SESSIONS_VARS[gc_time]"; 
    				$query_delete = mysql_query($sql_delete); 
    				
    				// nuovo id_sess 
    				$id_sess = md5(uniqid(microtime()));
    il mio problema è quello segnato in rosso.
    Quando faccio partire lo script nopn mi cancella la sessione salvata; fondamentalmente perchè non riesco a tradurre la stringa;
    noterete subito questo pezzo global $_SESSIONS_VARS[gc_time] e vi rispondo chje sto sviluppando il tutto con php 4.3.6.
    La mia domanda è $id_sess dovrebbe reciuperarla da qualche parte , a rigor ddi logica si!
    ma al parte che non comprendo è la seguente $_SESSIONS_VARS[gc_time].
    gc_time è un comando abbinato a $_SESSIONS_VARS ?

    scusate la confusione nella scrittura , ma non cancella le sessioni e non capisco cosa debba cancellare visto che ogni sessione è differente dalle altre...
    cia!!!

  2. #2
    Cos'e' $_SESSIONS_VARS ?? conosco $_SESSION oppure il vecchio e deprecato $HTTP_SESSION_VARS

    comunque sia, quello tra parentesi quadre [gc_time] sarebbe nient'altro che un indice associativo di nome gc_time che contiene qualcosa. Prova a stampare le variabili, o meglio ancora stampa la query.

    Poi le probabilita' che un unix timestamp - un qualcosa valorizzato in last_action sia uguale al contenuto di un improbabile $_SESSIONS_VARS[gc_time] si riducono alla precisione del secondo. Davvero poco probabile possa cancellare qualcosa.

    Oltretutto UNIX_TIMESTAMP() non necessita di NOW() perche' prende di suo la corrente data/ora. Posso pensare che quella query voglia eliminare gli eventuali record con lo stesso id_sess (generato da un MD5() , di nuovo poco probabile) OR, oppure, i record che sono piu' vecchi >= di una certa data/ora definita in $_SESSIONS_VARS.

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

  3. #3
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885
    ti ringrazio ,
    non riuscivo a capire cosa facesse ed ora ho capito che sarebbe meglio riscriverla ...
    ma una cosa ancora .
    ha senso scriovere su db una sessione ? perchè? non viene memorizzata già nel server? non basta che io la cripty senza scrivewrla nel db ?
    scusa la sequenza di ? ...
    per lòa stampa di gc_time non è cosi semplice , mi hanno passato la classe , ora la sto modellando per ciò che mi serve. ma questa cosa non lo proprio capita , anche perchè ho spulciato tutto l'applicativo di chi mi ha passato la classe ma non ho trovato nulla ne nei db ne nelle pagine con il nome gc_time....

  4. #4
    Originariamente inviato da tapu
    ti ringrazio ,
    non riuscivo a capire cosa facesse ed ora ho capito che sarebbe meglio riscriverla ...
    ma una cosa ancora .
    ha senso scriovere su db una sessione ? perchè? non viene memorizzata già nel server? non basta che io la cripty senza scrivewrla nel db ?
    scusa la sequenza di ? ...
    ci sono vari modi per gestire una sessione:

    La prima e' di affidare tutto alle funzioni del php che provvede ad aprire una sessione, ad inviare un cookie di sessione al browser, a creare un file dove appoggiare i valori della sessione, controllare i vari timeout, validita' del cookie ed altro come aprire, aggiornare, eliminare i file di sessione ecc... si potrebbe anche usare il db sqlite invece dei file di sessione.

    La seconda e' fare tutto da se, simulando in pratica quello che farebbe una gestione della sessione da parte del php utilizzando pero' il database oppure altro mezzo. Ovviamente ci sono mille e un modo per realizzare il proprio script ma basicamente dovra' fare (in quello o altro modo) piu' o meno le stesse cose previste dalla sessione del php.

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

  5. #5
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885
    quindi non è per sicurezza o cose del genere , ma fa parte della tercnica che ognuno usa.

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.