Foros del Web » Programando para Internet » PHP »

Pregunta fumada.. Cuando Cierro el navegador , se podra hacer alguna operacion ?

Estas en el tema de Pregunta fumada.. Cuando Cierro el navegador , se podra hacer alguna operacion ? en el foro de PHP en Foros del Web. Hola a todos recientemente me he preguntado si se pueden hacer operaciones en php que al cerrar un navegador de la forma habitual que siempre ...
  #1 (permalink)  
Antiguo 17/10/2007, 13:28
Avatar de Fher  
Fecha de Ingreso: febrero-2003
Ubicación: En algun lugar de cancun
Mensajes: 384
Antigüedad: 21 años, 2 meses
Puntos: 0
Pregunta Pregunta fumada.. Cuando Cierro el navegador , se podra hacer alguna operacion ?

Hola a todos recientemente me he preguntado si se pueden hacer operaciones en php que al cerrar un navegador de la forma habitual que siempre lo hacemos (pulsando la X de cerrar) o situarnos sobre la barra de estado de nuestro sistema y darle cerrar con click derecho se haga una operación cualquiera ya sea enviar un email, guardar algun valor en la base de datos, etc y todo esto con solo cerrar el navegador.

se que por ser un lenguaje de servidor requiere de una solicitud y respuesta para hacer alguna operación, pero quisiera saber si alguien por ahi conoce de algun script basado en php o php con ajax, procedimiento, metodo, magia que al cerrar un navegador se haga operacion.

como ejemplos podriamos tener
que al cerrar un navegador se sumen dos numeros y se guarde en base de datos
que al cerrar un navegador se envie un email diciendote que cerraste tu navegador, que al cerrar un navegador se habra otra ventana, jaja, claro esto creo que es con javascript..

pero bueno si me entendieron es posible esto?, alguien sabe algo al respecto, ha investigado sobre mi pregunta..
__________________
solo firma
  #2 (permalink)  
Antiguo 18/10/2007, 01:03
 
Fecha de Ingreso: agosto-2005
Ubicación: Argentina, Capital Federal
Mensajes: 435
Antigüedad: 18 años, 8 meses
Puntos: 2
Re: Pregunta fumada.. Cuando Cierro el navegador , se podra hacer alguna operacion ?

La respuesta es si y no. Como poder hacer se puede haciendo uso del evento onunload de JavaScript + un poco de AJAX. Algo como esto:

test.php
Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<
html>
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<
title>Documento sin t&iacute;tulo</title>
<
script type="text/javascript">
function 
nuevoAjax()

    var 
xmlhttp=false
    try 
    { 
        
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP"); 
    }
    catch(
e)
    { 
        try
        { 
            
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
        } 
        catch(
E) { xmlhttp=false; }
    }
    if (!
xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp=new XMLHttpRequest(); } 

    return 
xmlhttp
}

function 
meCerre()
{
    var 
ajax=nuevoAjax();
    var 
dato="un dato";
    
ajax.open("POST""test2.php"true);
    
ajax.setRequestHeader("Content-Type""application/x-www-form-urlencoded");
    
ajax.send("dato="+dato);
}

</script>
</head>

<body onunload="meCerre()">

</body>
</html> 
test2.php

Código PHP:
<?php
$var
=$_POST['dato'];
$file=fopen('archivo.txt''a');
fwrite($file$var.' - ');
fclose($file);
?>
El problema es que con el evento onunload no tenés la certeza de que tu PHP se vaya a ejecutar siempre que el usuario cierra el navegador ya que puede tener el JS deshabilitado. Por este motivo esta solución es aplicable solo cuando el código a ejecutarse en servidor no es indispensable que se ejecute.

Saludos.
__________________
R4DS en español | R4DS en inglés
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:54.