[PHP] Chiudere sessione quando la pagina viene riaggiornata

Cosina

Utente Attivo
27 Dic 2016
101
0
16
Ciao a tutti. Ho realizzato una pagina riservata con login usando php. Quando l'utente effettua il logout, la sessione viene cancellata e non e` piu` possibile accedere alla pagina riservata se non reinserendo i dati di accesso. Se si prova a raggiungere la pagina via URL, si viene reindirizzati alla home del sito. Tutto ok, ma se l'utente non effettua il logout, puo` rientrare nella pagina tutte le volte che vuole, anche se viene riaggiornata e anche se chiude e riapre il browser. Quello che vorrei, invece, e` che la sessione terminasse , quando l'utente lascia la pagina, anche se non ha effettuato manualmente il logout. E' possibile?
Il codice della pagina di logout e` questo:

PHP:
<?php session_start(); /* Starts the session */
session_destroy(); /* Destroy started session */
header("location:../index");
exit;
?>

Grazie per l'aiuto
 

Eduadie

Utente Attivo
22 Mar 2013
58
7
8
www.mrrobotbet.altervista.org
Che io sappia non esiste una tecnica per poterlo fare, potresti o controllare con Javascript la chiusura della scheda e quindi inviare una richiesta AJAX al server per cancellare la sessione (ovviamente se il Javascript è disabilitato questa modalità non funziona) oppure puoi usare la funzione che determina il tempo di vita della sessione, in modo da "abbatterla" prima che venga chiusa la finestra.
La funzione oltre a determinare la vita, ne rinnova la scadenza se richiamata all'inizio di ogni pagina.
Però una volta abbattuta, la sessione non può essere rinnovata, questi meccanismi vengono utilizzati solitamente nei siti web dove la sicurezza è importante, come area utenti di una banca, oppure mail box online.

PHP:
session_set_cookie_params(<secondi>);
session_start();
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
ti schematizzo quello che potrebbe essere un metodo
1) pagina di log
PHP:
<?php
session_start();
$_SESSION['caso']=rand(1000,9999);//tutte le volte ache accedi alla pagina si genera un numero casuale
$per_form=md5($_SESSION['caso']);//md5 per confondere un po
?>
<form action="accesso_si_no.php?vengo_da=<?php echo $per_form; ?>" method="post">
<!-- i vari campi di input e submit necessari-->
</form>
2) pagina accesso_si_no.php (pagina senza una riga html che serve per fare le verifiche)
PHP:
<?php
session_start();
if(md5($_SESSION['caso'])!=$_GET['vengo_da']){
    //distruggo la sessione e rimando es. alla index
}else{
    //leggo i dati dal form e li verifico da db se utente registrato
    if($registrato){
        //ricreo la sessione casuale
        $_SESSION['caso']=rand(1000,9999);
        $per_riservata=md5($_SESSION['caso']);
        header('location:pagina_riservata.php?vengo_da=$per_riservata');
        exit();
    }else{//rimando alla index
   }
}
?>
3) pagina_riservata.php
PHP:
<?php
session_start();
if(md5($_SESSION['caso'])!=$_GET['vengo_da'] || !isset($_SESSION['caso']) || !isset($_GET['vengo_da'])){
    //distruggo la sessione e rimando es. alla index
}else{
    //elimino comunque la sessione tanto sino a che rimango nella pagina non mi serve
?>
<html>
<!-- tutto l'html o php che serve-->
</html>
<?php
}
?>
se esci dalla pagina riservata sensa il logout e cerchi di rientrare la sessione e il get non esistono piu o in caso di refresh sono diversi e quin non dovrei più riuscire ad entrare se non passando nuovamente dal log
prova e sappimi dire se funziona
 
  • Like
Reactions: Eduadie

Cosina

Utente Attivo
27 Dic 2016
101
0
16
Grazie mille a tutti per le risposte. Faccio le mie prove, nei prossimi giorni e poi vi faccio sapere. Ciao
 
Discussioni simili
Autore Titolo Forum Risposte Data
G [PHP] Chiudere determinate finestre browser alla disconnessione PHP 0
A PHP: come chiudere uno script dopo un certo periodo di tempo? PHP 7
F Cerco Hosting con VECCHIE versioni di php Hosting 0
Cosina Captcha php PHP 1
S passare un valore da un form a un file .php con metodo post PHP 4
N php msyql PHP 6
N php problemi a visualizzare video PHP 3
A menu a tendina php PHP 1
D protezione cartelle: blocco visualizzazione/scaricamento contenuto, ma abilitazione utilizzo dati da parte di file .php presenti sul sito Web Server 1
F Php date_diff PHP 1
K [PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa PHP 2
C Wp-admin a file php WordPress 5
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
csi Inviare file jpg in locale alla stampante con php PHP 0
M Passaggio variabili array php su un tasto jq PHP 3
E Php aggiornamento tabella PHP 9
G phpmailer e php 8.1 con estensione mysqli PHP 6
M Invio dati database via email php PHP 0
K [php] Problema con inner join PHP 4
K [php]form invio dati PHP 0
P Codifica caratteri speciali mysql php PHP 0
K [PHP] Problema con variabili concatenate. PHP 1
E Stampante termica escpos-php PHP 6
JeiMax Modifica codice php personalizzato PHP 2
G Come modificare un pdf in php PHP 1
U Link a doppio file PHP PHP 0
E PHP & jQuery PHP 8
N Passare array da php a javascript PHP 5
F Applicazione PHP/MySQL per prenotazioni: limitare il numero massimo di posti prenotabili PHP 20
L tipo boolean non funzionante su mariadb (mysql). E codice php 7.4. PHP 0
U PHP creare un file excel dopo ricerca nel DB PHP 0
M PHP/MySQL - Estrarre valori min e max di ogni gruppo PHP 5
F Php e fatturazione elettronica PHP 0
P lanciare script asp (o php) da jquery Javascript 1
Couting95 inserire dati da un file di testo in una tabella in php PHP 1
P Data scraping in PHP non funziona PHP 4
C Calcoli matematici in php PHP 5
F Scrivere dei dati in word con php PHP 0
D PHP leggere cartella di Windows PHP 1
I dominio aruba versione php server linux Domini 3
G Colorare menu select attraverso ricerca php PHP 0
L PHP motore di ricerca nel sito PHP 1
S PHP e Mysqli PHP 0
Y Stampare da php su un foglio A6 attraverso una stampante esterna PHP 1
M Visulizzare immagine con php PHP 8
G [PHP] Creare script di prenotazione con controllo disponibilità. PHP 7
G leggere file txt e stampare con php il contenuto a video PHP 7
F Ricreare struttura php+mysql su Xampp Apache 0
Z PHP.INI - STMP per invio email con PHP Server Dedicati e VPS 0
M Array associativi php su 2 campi mysql PHP 10

Discussioni simili