• User

    Intercettare l'evento onClose dell'oggetto window

    teoricamente ecco cosa dovrei fare... ma praticamente chi ha dimistichezza su questa cosa??? grazie dell'illuminazione


  • User

    ho cercato su internet e la cosa che mi potrebbe aiutare è il "onUnload". Beneora vi esporto prima il codice e poi vi spiego il mio problema

    
    <?    include '../connessione.php';
    
        session_name('login');
        session_start(); //si inizia o continua la sessione
    
        //dati del pg 
        $login_user=$_SESSION['user']; 
        $pass_user=$_SESSION['pass']; //passwd 
        $id=$_SESSION['id'];
        $redirect="http://127.0.0.1/lumamo/index.php"; //indirizzo assoluto della pagina di login
    
        //gestione della sessione nel caso in cui i cookie sono disabilitati
        if(IsSet($_POST['PHPSESSID']) && !IsSet($_COOKIE['PHPSESSID']))
        {    $PHPSESSID=$_POST['PHPSESSID'];
            header("Location: $redirect?PHPSESSID=$PHPSESSID"); //si ricarica la pagina di login
        }
        
        //setto il flag dell'on
        if(IsSet($login_user) && IsSet($pass_user) && IsSet($id))
        {    $query = "SELECT * FROM utenti WHERE ID = '$id'";
            # controlla se l'id è inserito nel database
            $result = mysql_query($query);
            if (mysql_num_rows($result) > 0)
            {    mysql_query("UPDATE utenti SET on_off = 1 WHERE ID = '$id'");
            }
        }
        
        //logout
        if($_SESSION['logout'] == 1)
        {    $_SESSION=array(); // Desetta tutte le variabili di sessione.
            session_destroy(); //DISTRUGGE la sessione. 
    
            if(IsSet($login_user) && IsSet($pass_user) && IsSet($id))
            {    $query = "SELECT * FROM utenti WHERE ID = '$id'";
                # controlla se l'id è inserito nel database
                $result = mysql_query($query);
                if (mysql_num_rows($result) > 0)
                {    mysql_query("UPDATE utenti SET on_off = 0 WHERE ID = '$id'");
                }
            }
    
            if(IsSet($_COOKIE['sav_user'])) //se presente si distrugge il cookie di login automatico 
            setcookie("sav_user",$cok,time()-31536000); 
            echo "Arrivederci e alla prossima";
            exit; //si termina lo script in modo da ritornare alla schermata di login
        }
    ?> 
    
    <html>
        <head>
            <title>Ben venuto <? echo $_SESSION['razza']; echo " || "; echo $_SESSION['user']; ?></title>
    
            <script language="JavaScript" type="text/javascript">
    
                function close_land()
                {    $_SESSION['logout']=1;
                    logout=window.open("./frame.php","nuova","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=300,height=200);
                }
    
            </script>
        </head>
    
        <frameset rows="15%,*" cols="*" frameborder="NO" border="0" framespacing="0" onUnload="close_land()">
            <frame src="testa.php" name="topFrame" scrolling="NO" noresize>
            <frameset cols="*,20%" frameborder="NO" border="0" framespacing="0" >
                <frame src="mappa.php" name="mainFrame">
                <frame src="menu.php" name="menu" scrolling="NO" noresize>
            </frameset>
        </frameset>
    
        <noframes>
            <body>
    
            </body>
        </noframes>
    </html>
    
    

    il problemino riscontrato è quello che quando chiudo non mi apre la nuova pagina che mi permette il loguot... mi sapreste dire dov'è l'errore? (il nUnload="close_land()" ho provato a metterlo anche nel body... ma nn funge...) gazie per la risposta ^_^


  • User Newbie

    Ciao,
    hai provato ad attivare la funzione su onbeforeunload anziché sull'onload .. sul tag body funziona sicuramente.. non lo so per certo su frameset.


  • User

    nn funge neanche quello... ora mi chiedo... potrebbe esser perché lavoro in locale?


  • User

    no neanche on line... provo come hai detto te


  • User

    nulla da fare... ho provato tutte le combinazioni possibili ma niente... aiutoooooooooooooooooooooooooooooo


  • User Newbie

    ma hai provato a far attivare l'evento dirattamente sul tag body della pagina in questione?


  • User Attivo

    Secondo me non funziona perché va in errore...
    :arrabbiato:

    Stai usando IE oppure Firefox? Hai aperto la console javascript per controllare gli errori?

    La riga $_SESSION è sbagliata perché l'hai scritta dentro un javascript mentre sicuramente intedevi valorizzare un parametro in PHP.

    function close_land()
    { $_SESSION['logout']=1;
    logout=window.open("./frame.php","nuova","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=300,height=200);
    }


  • User

    quello che dice inuyaksa è vero... ora invece ho provato a fa quest'altra cosa:

    
    .
    .
    .
    <html>
        <head>
            <title>Ben venuto <? echo $_SESSION['razza']; echo " || "; echo $_SESSION['user']; ?></title>
        </head>
    
        <frameset rows="15%,*" cols="*" frameborder="NO" border="0" framespacing="0">
            <frame src="testa.php" name="topFrame" scrolling="NO" noresize>
            <frameset cols="*,20%" frameborder="NO" border="0" framespacing="0" >
                <frame src="mappa.php" name="mainFrame">
                <frame src="menu.php" name="menu" scrolling="NO" noresize>
            </frameset>
        </frameset>
    
        <noframes>
            <body  onUnload="window.open('loguot.php','logout','resizable=no,width=300,height=200');">
    
            </body>
        </noframes>
    </html>
    
    

    ma uguale non me apre quest'altre benedetta pagina. come si apre la console javascript?


  • User Attivo

    Usa la forza mio giovane Padauan...
    googgolando un po' ho trovato questo guida...
    http://javascript.html.it/guide/lezione/873/il-debugger-trovare-gli-errori/

    :fumato:


  • User Newbie

    scusa... ma tu stai mettendo l'event catcher associato al body alternativo ai frame, per forza non va.. quello che di cevo io, e che di sicuro funzia perchè la uso da tempo, è mettere l'onbeforeunload sul tag body di una delle pagine caricate nei frame.


  • User

    ragazzi non era un problema di sintassi o che altro... è che io sono un tontolo xD avevo i popup erano bloccati xD ora funziona! vi ringrazio tutti ^_^

    (e come dice la mia prof di sistemi: prima di pensare in grande controllare che le cose più piccole siano ok)