Quiero dar de baja de la base de datos SQL, cuando un usuario abandona una página.
He creado un script jquery-Ajax, que aprovecha el evento "beforeunload" para enviar datos antes de que la pagina se cierra...
Index.php
<?php
$roomx='myroom';
$number=2;
$user='Anonimous';
?>
<html>
<head>
<title>Testing action on unload</title>
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js'></script>
</head>
<body>
<p>Ajax Response</p>
</body>
<script type="text/javascript">
$(document).ready(function() {
$(window).one('beforeunload',function(event) {
event.preventDefault();
$.ajax({
url: 'logout.php', //put your url here
type: 'GET',
async: true,
data: 'roomx=justin&user=angel',
error: function(xhr,status,e) { console.log('error'); },
success: function(data, textStatus, xhr) { $('#resp').html(xhr.responseText);},
complete: function(xhr, status) {alert('Now closing window'); //put your popup here
$(window).unload();
}
});
});
});
</script>
</html>
Envia los datos a la pagina logout.php que los procesa:
<?php
if($_GET)
{
$roomx=$_GET['roomx'];
$user=$_GET['user'];
$age=$_GET['age'];
echo "room : ".$roomx;
// CONECTAMOS A LA BASE DE DATOS Y ANADIR LOS VIEWERS QUE VAN ENTRANDO
$conexion=mysqli_connect("localhost","root","elzor ro","chatinnew");
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
//Insertamos el usuario
mysqli_query($conexion,"INSERT INTO uwslv_chatin(room,user_id,username) VALUES ('$roomx',2,'$user')") or die ("Problemas con insert".mysql_error());
//Cerramos base de datos
mysqli_close($conexion);
}
?>
PREGUNTA 1: El código funciona con Mozilla Firefox, pero no con Chromium... ¿alguien sabe por que?
PREGUNTA 2: Alguien tiene idea de cómo eliminar la alerta que aparece en Firefox de dice "Esta seguro de cerrar la pagina...?"
Gracias de antemano por cualquier ayuda