Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    309

    forzare la chiusura di una sessione all'uscita dal browser

    salve a tutti!!

    vi posto il mio "problema": ho installato uno script (trovato tramite Google) per la registrazione nonchè autenticazione degli utenti. Tutto funziona bene....però ho notato che se chiudo il browser, poi lo riapro, la sessione è ancora valida quindi risulto "loggata". A me piacerebbe che alla chiusura della finestra la sessione scadesse. E' possibile fare una cosa del genere? Vi posto il file che riceve i dati dal form login (in cui credo vengono create le sessioni in caso di login ok) se ho capito male io.....ditemi pure!

    ecco il file:

    Codice PHP:
    <?php
        
    //Start session
        
    session_start();
        
        
    //Include database connection details
        
    require_once('config.php');
        
        
    //Array to store validation errors
        
    $errmsg_arr = array();
        
        
    //Validation error flag
        
    $errflag false;
        
        
    //Connect to mysql server
        
    $link mysql_connect(DB_HOSTDB_USERDB_PASSWORD);
        if(!
    $link) {
            die(
    'Failed to connect to server: ' mysql_error());
        }
        
        
    //Select database
        
    $db mysql_select_db(DB_DATABASE);
        if(!
    $db) {
            die(
    "Unable to select database");
        }
        
        
    //Function to sanitize values received from the form. Prevents SQL injection
        
    function clean($str) {
            
    $str = @trim($str);
            if(
    get_magic_quotes_gpc()) {
                
    $str stripslashes($str);
            }
            return 
    mysql_real_escape_string($str);
        }
        
        
    //Sanitize the POST values
        
    $login clean($_POST['login']);
        
    $password clean($_POST['password']);
        
        
    //Input Validations
        
    if($login == '') {
            
    $errmsg_arr[] = 'Login ID missing';
            
    $errflag true;
        }
        if(
    $password == '') {
            
    $errmsg_arr[] = 'Password missing';
            
    $errflag true;
        }
        
        
    //If there are input validations, redirect back to the login form
        
    if($errflag) {
            
    $_SESSION['ERRMSG_ARR'] = $errmsg_arr;
            
    session_write_close();
            
    header("location: login-form.php");
            exit();
        }
        
        
    //Create query
        
    $qry="SELECT * FROM members WHERE login='$login' AND passwd='".md5($_POST['password'])."'";
        
    $result=mysql_query($qry);
        
        
    //Check whether the query was successful or not
        
    if($result) {
            if(
    mysql_num_rows($result) == 1) {
                
    //Login Successful
                
    session_regenerate_id();
                
    $member mysql_fetch_assoc($result);
                
    $_SESSION['SESS_MEMBER_ID'] = $member['member_id'];
                
    $_SESSION['SESS_FIRST_NAME'] = $member['firstname'];
                
    $_SESSION['SESS_LAST_NAME'] = $member['lastname'];
                
    session_write_close();
                
    header("location: member-index.php");
                exit();
            }else {
                
    //Login failed
                
    header("location: login-failed.php");
                exit();
            }
        }else {
            die(
    "Query failed");
        }
    ?>

  2. #2
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    non credo che il problema sia in questo file, sicura che non ci sia qualche gestione di cookie in qualche file?

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    309
    mh....nn credo! gli altri file presenti nello script sono:

    auth.php
    Codice PHP:
    <?php
        
    //Start session
        
    session_start();
        
        
    //Check whether the session variable SESS_MEMBER_ID is present or not
        
    if(!isset($_SESSION['SESS_MEMBER_ID']) || (trim($_SESSION['SESS_MEMBER_ID']) == '')) {
            
    header("location: access-denied.php");
            exit();
        }
    ?>
    gli altri sono per la registrazione....

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    309
    questo è l'elenco completo dei file nel pacchetto: dimmi se vedi qualcosa che puo' riguardare le sessioni!!

    1. config.php - This script contains the database connection details. Edit this file to specify your own database's connection details.
    2. register-form.php - A simple registration form
    3. register-exec.php - Handler script for the the above form. This script will create member accounts for you.
    4. login-form.php - Login form
    5. login-exec.php - Handler script for the above login form. This script authenticates the login details and then sets up a session for the user.
    6. logout.php - Script used to logout a user from the session.
    7. member-index.php - Sample password protected page.
    8. member-profile.php - Sample password protected page.
    9. auth.php - Include this script at the top of any page you want to password protect. This script checks whether the user is logged in or not.

  5. #5
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    di default il session.cookie_lifetime è impostato a 0, ovvero il ciclo di vita della sessione dura finchè non si chiude il browser. prova a vedere se viene settato questo parametro da qualche parte....
    cerca una funzione di nome session_set_cookie_params

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    309
    grazie per la risposta! cerco subito

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    309

    @ bstefano79:

    niente!!! in nessun file c'è la funzione che mi hai indicato....
    però stavo pensando....perchè non aggiungerla io?????? è possibile secondo te?

  8. #8
    Ho lo stesso problema ma con un codice scritto da me (quindi sicuramente senza cookies); in realtà chiudendo il browser (cioè tutte le finestre del browser) la sessione si chiude ma se si chiude solo la finestra relativa al sito in questione e rimane qualche altra finestra aperta, l'utente "rimane" loggato.
    Io ho risolto (parzialmente) inserendo un tasto per il logout; una soluzione potrebbe essere quella inserire una specie di time-out (dopo tot tempo di inattività chiudi la sessione).

  9. #9
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    Originariamente inviato da Barcoffin
    Ho lo stesso problema ma con un codice scritto da me (quindi sicuramente senza cookies); in realtà chiudendo il browser (cioè tutte le finestre del browser) la sessione si chiude ma se si chiude solo la finestra relativa al sito in questione e rimane qualche altra finestra aperta, l'utente "rimane" loggato.
    Io ho risolto (parzialmente) inserendo un tasto per il logout; una soluzione potrebbe essere quella inserire una specie di time-out (dopo tot tempo di inattività chiudi la sessione).
    questo mi torna, ma allora non chiudete il browser ma alcune finestre

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    309
    ciao grazie per il tuo messaggio! il tasto log-out è presente anche in questo script....ma tutti sappiamo che non lo fa mai nessuno quando esce da un sito!!! )) io la prima!

    cmq l'idea di temporizzare (si dice così???) la visita al sito mi piace!

    hai idea di come si faccia?
    grazie ancora sei stato gentilissimo!

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.