PHP - borrar archivo al cerrar la web

 
Vista:
sin imagen de perfil

borrar archivo al cerrar la web

Publicado por Ricchar (15 intervenciones) el 17/02/2014 17:04:43
Buenas de nuevo!!
Estoy intentando eliminar unas imágenes, pero solo puedo eliminarlas cuando el usuario ha cerrado la pagina, ya que mientras la tiene abierta puede estar viendo esa imagen la cual se visualiza a través de pulsar un botón.

Tengo la funcion en php creada y el evente onbeforeunload que llama a esa funcion, el problema es que se ejecuta nada mas abrir la web, es decir, nada mas cargar la pagina borra la foto. Os dejo el codigo para ver si alguien puede echarme una manita.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?
function borrar(){
 
unlink("PATH-TO-IMAGE/imagen.png);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html class="no-js" lang="en">
<head>
 
<script language="JavaScript">
window.onbeforeunload = <?php echo borrar()?>
</script>
 
	<title>TEST</title>
 
</head>
 
<body>
Web de ejemplo
</body>
 
</html>

Saludos y gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

borrar archivo al cerrar la web

Publicado por jac (8 intervenciones) el 17/02/2014 18:31:50
Por que no probas con un archivo separado?
Por ej
en el que queres que dispare el borrado cuando se cierra pones
1
2
3
4
5
6
7
8
9
10
11
<head>
<script>
function openpopup(){
window.open("borrar.php","","width=300,height=338")
}
</head>
 
<BODY  onunload="openpopup()">
 
bla bla bla
</body>

y en el archivo borrar.php pones

1
2
3
4
5
6
7
8
9
10
11
<?php
unlink("PATH-TO-IMAGE/imagen.png);
<?
<html>
<script languaje javascript>
window.close();
</script>
<html>
 o sino también
<body onload"window.close();">
</body>

Tené en cuenta que cada reload de la pagina se te va a cerrar asique aunque no sea muy lindo te aconsejo trabajar con frames

uno de 1 px que contenga el onunload y el otro donde se encuentra la pagina realmente

Espero te sea de utilidad
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

borrar archivo al cerrar la web

Publicado por Ricchar (15 intervenciones) el 17/02/2014 18:54:45
Ok, voy a probar y te comento, seria aun mas sencillo, porque no quiero que me abra ninguna otra pagina, solamente que lo borre, voy a probar a pasarle esa pagina, pero simplemente pondré la funcion y en el body la llamaré y ya está, a ver lo que pasa, el tema de frames o iframes, es que nunca he trabajado con ellos y no se como usarlos o como montarlos, no se si es muy complicado o no....

Saludos y gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

borrar archivo al cerrar la web

Publicado por jac (1 intervención) el 17/02/2014 20:56:50
primero probá si te funciona y despues vemos lo de los frames en todo caso
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

borrar archivo al cerrar la web

Publicado por Ricchar (15 intervenciones) el 18/02/2014 12:16:55
No me funciona....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

borrar archivo al cerrar la web

Publicado por jac (8 intervenciones) el 18/02/2014 13:22:35
Armaste los 2 archivos?
No te levanta el 2do archivo o sigue como al principio ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

borrar archivo al cerrar la web

Publicado por xve (6935 intervenciones) el 18/02/2014 15:48:18
Hola Ricchar, intenta se un poco mas explicito en tus comentarios... entiendo que no vemos que hace!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

borrar archivo al cerrar la web

Publicado por Ricchar (15 intervenciones) el 18/02/2014 16:36:56
Tienes razon xve, mil perdones.

EL problema jac es que no levanta el segundo archivo, es decir, la segunda pagina no la ejecuta, el codigo ahora mismo de cada una de ellas es:

Borrar.php
1
2
3
4
5
6
7
8
9
<?php
unlink("/PATH-TO-IMAGE/prueba.png);
<?
<html>
<script languaje javascript>
window.close();
</script>
</html>


Prueba.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html class="no-js" lang="en">
<head>
 
<script language="JavaScript">
function open(){
window.open("borrar.php")
}
</script>
 
	<title>TEST</title>
 
</head>
 
<body onunload="open">
Web de ejemplo
</body>
 
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

borrar archivo al cerrar la web

Publicado por jac (8 intervenciones) el 18/02/2014 20:11:28
Cambia
<body onunload="open">
por
<body onunload="open()>
y a la funcion agregale los parametros

window.open("borrar.php","","width=3,height=3")

El nombre del archivo borrar lo tenes en minusculas? ¿borrar.php o Borrar.php?

En el window.open debe estar igual a como está en la carpeta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

borrar archivo al cerrar la web

Publicado por Ricchar (15 intervenciones) el 18/02/2014 21:52:06
Si me he fijado que lo tenia y lo he modificado pero nada, ahora mismo lo tengo asi:

borrar.php
1
2
3
4
5
6
7
8
9
10
<?php
unlink("/home/user/Descargas/Upload/prueba.png");
?>
<html>
<script language="JavaScript">
window.close();
</script>
<body>
</body>
</html>

prueba.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html class="no-js" lang="en">
<head>
 
<script language="JavaScript">
function open(){
window.open("borrar.php","","width=300,height=338");
}
</script>
 
	<title>TEST</title>
 
</head>
 
<body onunload="open()">
<p>Web de ejemplo</p>
</body>
 
</html>

He probado a cargar la pagina de borrar y si que me borra el archivo, vamos que la pagina va bien, el problema es que cuando cierro prueba.php no me abre la de borrar.php. El tema de mayusculas y minuscula esta todo ok.

He probado en chrome y firefox y no funciona en ninguno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

borrar archivo al cerrar la web

Publicado por jac (8 intervenciones) el 18/02/2014 22:38:19
La funcion de javascript no puede llamarse open, es un nombre reservado
ponele function open_popup() ó function salida() o cualquier otro nombre

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<head>
 
<script language="JavaScript">
function salida(){
window.open("borrar.php","","width=300,height=338");
}
</script>
 
	<title>TEST</title>
 
</head>
 
<body onunload="salida()">
<p>Web de ejemplo</p>
</body>
 
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

borrar archivo al cerrar la web

Publicado por Ricchar (15 intervenciones) el 18/02/2014 23:18:54
Ok, he probado con salida, por ejemplo asi:

prueba.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html class="no-js" lang="en">
<head>
 
<script language="JavaScript">
function salida(){
window.open("borrar.php","","width=300,height=338");
}
</script>
 
	<title>TEST</title>
 
</head>
 
<body onunload="salida()">
Web de ejemplo
 
</body>
 
</html>

Y sigue sin funcionarme....ya no sé que puedo estar haciendo mal
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

borrar archivo al cerrar la web

Publicado por jac (8 intervenciones) el 18/02/2014 23:31:44
proba copiando y pegando este codigo en un nuevo archivo


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <head>
 
<script language="JavaScript">
 function salida(){
 window.open("borrar.php","","width=300,height=338");
 }
 </script>
 
 <title>TEST</title>
 
</head>
 
<body onunload="salida()">
 <p>Web de ejemplo</p>
 </body>
 
</html>

A mi me funciona en chrome, ie, firefox, opera y safari, no se
Tenes algun bloqueador de popup? tenes javascript habilitado?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

borrar archivo al cerrar la web

Publicado por Ricchar (15 intervenciones) el 19/02/2014 00:57:07
Pues si a ti te funciona ya no se que puede pasar....los popup no los tengo bloqueados porque si uso la funciona onbeforeunload llamando a una funcion y a esa funcion le paso por ejemplo return "seguro de abandonar la web?" si que me funciona y si que me salta la ventana, ahora mismo el archivo de borrar lo tengo asi

borrar
1
2
3
4
5
6
7
8
9
10
11
<?php
unlink("/home/rixi/Descargas/Upload/p.txt");
?>
<html>
<script language="JavaScript">
//window.close();
</script>
<body>
<p>Hola</p>
</body>
</html>

Por lo que entiendo, deberia de cuando cierro la pagina prueba.php, abrirme otra (borrar.php) donde me muestre simplemente Hola, pero no me hace nada, simplemente se cierra. He probado con firefox y chrome, y uso ubuntu, pero vamos no creo que el SO sea el problema.
Javascript si lo tengo habilitado, porque tengo otras paginas donde uso Javascript y me ejecuta las funciones sin problemas.

Si a ti te esta funcionando ya no se donde puede estar el problema....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

borrar archivo al cerrar la web

Publicado por Ricchar (15 intervenciones) el 19/02/2014 13:39:31
Como no me funcionaba, me decidi a hacer un boton para mostrar la imagen en otra pagina, y una vez mostrara la imagen pues borrarla, el codigo es el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php
function write($utrseqimage, $utrstrimage,  $name)
{
 
$utr = $name."utr.dot";
$fp=fopen("/PATH-TO-FILE/txtfiles/$utr","w");
fwrite($fp,">$utr");
fwrite($fp,"\n");
fwrite($fp,$utrseqimage);
fwrite($fp,$utrstrimage);
fclose($fp);
 
$inputfile="/PATH-TO-FILE/txtfiles/$utr";
$ctfile=$name."utr.ct";
$imgps=$name."utr.ps";
$imgpng = $name."utrpng.png";
$pngfiles="pngfiles/$imgpng";
 
$funcfile="/PATH-TO-FILE/exe/dot2ct";
$outputpsfile="/PATH-TO-FILE/ctfiles/$ctfile";
$ctfunc= $funcfile . " " . $inputfile . " " . $outputpsfile;
exec("$ctfunc");
 
$drawexe = "/PATH-TO-FILE/exe/draw";
$inputdraw = $outputpsfile;
$outputdraw = "/PATH-TO-FILE/psfiles/$imgps";
$draw = $drawexe . " " . $inputdraw . " " . $outputdraw;
exec("$draw");
 
$convertpng = "/PATH-TO-FILE/pngfiles/$imgpng";
$convert = "/usr/bin/gs -r300 -dNOPAUSE -dBATCH -sDEVICE=pngalpha -sOutputFile=";
$convertexe=$convert.$convertpng . " " . $outputdraw;
exec("$convertexe");
 
echo "<img src=$pngfiles width='1280' height='1024'>";
 
unlink($inputfile);
unlink($outputpsfile);
unlink($outputdraw);
unlink($convertpng);
}
?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html class="no-js" lang="en">
<head>
 
	<title>RIBOMAKER</title>
 
</head>
<body>
<?php
session_start();
$id = $_SESSION['id'];
$dats=$_SESSION['dates'];
write($dats[1], $dats[2], "utr");
?>
</body>
</html>

El problema que tengo es que no me carga la imagen...la borra antes de mostrarla!!!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar