Forzare il Logoff postato il 19/11/2008 20:46:12 nel forum programmazione, gdrcd e open source
Salve a tutti.
Una domandina veloce: sulla homepage un gdrcd comune, cliccando su Esci, l'utente stesso effettuerà il logoff. Ebbene, mi chiedevo se era possibile aggiungere una riga di codice (e quindi un pulsante) per forzare il logoff ad un altro utente, se noi fossimo ovviamente i gestori.
Sapete dirmi che sistassi debba utilizzare per fare in modo che ciò accada?
Grazie infinite
Giorgio
Pagine → 1
19/11/2008 21:04:44 e modificato da gaizen-queel il 19/11/2008 21:04:54
Ti basta cancellare la riga relativa al pg in questione dalla tabella presenti, non ricordo quale sia il nome vero e proprio.
19/11/2008 21:14:51
Bhe in teoria non basta solo cancellare la riga dalla tabella presenti. Difatti il pg non sarà più tra i presenti ma continuerà a girare liberamente per la land. Non c'è un modo comunque (almeno non che io conosca) per andare a manipolare una sessione non propria. Ergo al massimo si può provare ad escogitare qualcosa:
-Crei un campo nel db, nella tabella Personaggio chiamato esci ad esempio impostandolo a smallint.
-Crei una pagina php che cancella dagli on-line il personaggio e aggiorna il campo impostandolo a 1 (di default è 0).
-Aggiungi una query in una pagina che si aggiorna (ad esempio quella per la posta) che seleziona il dato dal db e che effettua un redirect alla pagina di logout (header("Location: logout.php");) solo se questo dato è 1.
19/11/2008 21:52:19
oppure ancora meglio Xenom: una volta impostato il flag nel campo personaggio o nella tabella che vuoi nella pagina di refresh carichi questo campo, se = 1 parte un if che fa session_destroy() in modo che la sessione del tizio si distrugge e lui non può continuare a stare nella land. Ovviamente questa è solo una base, si può raffinare molto a livello di mettere un controllo che elimini il pg dalla riga dei presenti ecc...
19/11/2008 22:09:34
19/11/2008 23:50:54
20/11/2008 07:52:12
bhe quando esilii un pg aggiungigli il session destroy... cioè avviene già un controllo se il pg è esiliato o meno.. basta aggiungere a quel che c'è già.. senza complicare la cosa creando altri campi.. tanto se butti qualcuno fuori dalla land.. credo sia come un bann.. poi non so perchè vorresti buttare qualcuno fuori dalla land xdxd di solito si cerca di farli entrare xd
20/11/2008 08:35:54
A questo giro ha ragione Ciccio :P
Xenom, se cancelli il PG dall'elendo dei presenti gli rimane la sessione attiva e continua a girare per il sito.
Come dice anche Toth, occorre impostare un flag nella scheda del personaggio, che venga controllato ad ogni refresh di una qualche pagina strategica, e se un utente ha quel tag settato ad uno il controllo reagisce e gli richiama le funzioni session_unset() e session_destroy() in questo ordine.
Non so perche' ma a volte pero' questo sistema non mi ha funzionato, per sicurezza azzeragli prima a mano il vettore di sessione e metti un controllo in tutte le pagine che se quel flag e' a 1 non si naviga piu', come un esilio.
In fase di login sovrascrivi pero' il flag a 0 tutte le volte, se no diventa un esilio.
20/11/2008 13:59:17
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD e Open Source Elenco Forum
Il gestore di Age of Crystals ha risposto alla recensione di moak