Foros del Web » Programando para Internet » Javascript »

Problema con OnUnload

Estas en el tema de Problema con OnUnload en el foro de Javascript en Foros del Web. Hola a todos, tengo un programa en PHP que utiliza JS de la siguiente manera: <body onunload='escribe_en_txt()'> <?php if($_POST[accion]=="Configurar"){ $texto="ALGUNA COSA"; $archivo=fopen("mi_archivo.txt","w+"); fwrite($archivo,$texto); fclose($archivo); } ...
  #1 (permalink)  
Antiguo 26/03/2009, 11:30
 
Fecha de Ingreso: marzo-2009
Mensajes: 1
Antigüedad: 15 años, 1 mes
Puntos: 0
Exclamación Problema con OnUnload

Hola a todos, tengo un programa en PHP que utiliza JS de la siguiente manera:

<body onunload='escribe_en_txt()'>

<?php

if($_POST[accion]=="Configurar"){

$texto="ALGUNA COSA";
$archivo=fopen("mi_archivo.txt","w+");
fwrite($archivo,$texto);
fclose($archivo);
}

<form action='$_SERVER[PHPSELF]?accion=Configurar' method='POST'>

Aqui formulario para carga de algunos datos.

<input type='submit' name='Configurar' value='Configurar'>

</form>

?>

</body>

--------------------------------------------------------------------------------------

La funcion escribe_en_txt() llama al archivo PHP escribe_en_txt.php en el servidor:

function escribe_en_txt(){
var xmlHttp;

//adapto el codigo para != navegadores
try {
// Firefox, Opera 8.0+, Safari
xmlHttp = new XMLHttpRequest();
}

catch (e){
// Internet Explorer
try{
xmlHttp = new ActiveXObject('Msxml2.XMLHTTP');
}catch (e){
try{
xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
}
catch (e){
alert('Your browser does not support AJAX!');
return false;
}
}
}
// FIN adapto el codigo para != navegadores

var url = 'escribe_en_txt.php';
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4) {
if(xmlHttp.status == 200) {
}
}
}

xmlHttp.open('POST',url,true);
xmlHttp.send(null);
}

-------------------------------------------------------------------------------
El archivo escribe_en_txt.php es el siguiente (comenta lo que estaba escrito anteriormente en el archivo, cuando el usuario cierra la ventana y sale del progrma):

<?php
$texto="# ALGO";
$archivo=fopen("mi_archivo.txt","w+");
fwrite($archivo,$texto);
fclose($archivo);
?>


El tema es que por separado (dejando solo el evento unload, o escribiendo el archivo con "ALGO" y quitando el codigo del evento unload) funciona correctamente. Pero cuando los pongo juntos (tal cual lo detalle arriba), el archivo mi_archivo.txt siempre queda con "# ALGO" (es decir comentado). Como si el evento unload se ejecutara despues de que el codigo entra en el condicional if($_POST[accion]=="Configurar"){
}

Por logica, entiendo que deberia ejecutarse antes (se que al enviar el formulario se dipara el evento unload).

Porque ocurre esto? Alguna idea para solucionarlo?

Desde ya muchas gracias

Sebastian
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 12:17.