Discussion:
Borrar archivo a través de formulario
(demasiado antiguo para responder)
and3
2005-05-14 09:28:23 UTC
Permalink
Hola a todos.

Necesito un script que elimine desde la Web, a través de un formulario, un
archivo que se encuentra en el servidor.

Estoy intentanto con esto, pero no funciona:

Creo una página con un formualrio borrar.html:

<form name="formulario" action="borrar.php" method="get">
<input type="text" name="archivo" size="22" maxlength="150">
<input type="submit" value="Borrar">
</form>


Y después creo el archivo borrar.php:


<?

$archivo= "archivo";

unlink($archivo);

if (unlink ($archivo)) {
print ("fichero borrado");

}
else {
print ("fichero no borrado");
}

?>

pero me saca el siguiente error:

Warning: unlink(archivo): No such file or directory in
/../public_html/borrar/borrar.php on line 14

También he probado con esto:

<?
$archivo= "archivo";
exec("rm $archivo '.$archivo.'");

?>
aquí no saca ningún error, pero tampoco lo borra.

Algien me puede echar una mano

Gracias
Buki*
2005-05-14 12:39:42 UTC
Permalink
Prueba esto:

$archivo = $_GET['archivo'];

if ( file_exists($archivo) ) $borrado = unlink ($archivo);

//Para comprobar
echo "Archivo $archivo borrado: $borrado";

Si no funciona:

1) Porque no especificas bien la ruta. en este caso quizás te sea de
utilidad la variable $DOCUMENT_ROOT. También, en linux mayúsculas y
minúsculas son distintas.

2) O bien: los permisos del archivo no son suficientes.

Debes asegurarte de ambas cosas.

salu2.

Buki*
Post by and3
Hola a todos.
Necesito un script que elimine desde la Web, a través de un formulario, un
archivo que se encuentra en el servidor.
<form name="formulario" action="borrar.php" method="get">
<input type="text" name="archivo" size="22" maxlength="150">
<input type="submit" value="Borrar">
</form>
<?
$archivo= "archivo";
unlink($archivo);
if (unlink ($archivo)) {
print ("fichero borrado");
}
else {
print ("fichero no borrado");
}
?>
Warning: unlink(archivo): No such file or directory in
/../public_html/borrar/borrar.php on line 14
<?
$archivo= "archivo";
exec("rm $archivo '.$archivo.'");
?>
aquí no saca ningún error, pero tampoco lo borra.
Algien me puede echar una mano
Gracias
and3
2005-05-14 16:48:07 UTC
Permalink
Funciona prerfectamente. Muy agradecido.


Saludos
Post by Buki*
$archivo = $_GET['archivo'];
if ( file_exists($archivo) ) $borrado = unlink ($archivo);
//Para comprobar
echo "Archivo $archivo borrado: $borrado";
1) Porque no especificas bien la ruta. en este caso quizás te sea de
utilidad la variable $DOCUMENT_ROOT. También, en linux mayúsculas y
minúsculas son distintas.
2) O bien: los permisos del archivo no son suficientes.
Debes asegurarte de ambas cosas.
salu2.
Buki*
Post by and3
Hola a todos.
Necesito un script que elimine desde la Web, a través de un formulario, un
archivo que se encuentra en el servidor.
<form name="formulario" action="borrar.php" method="get">
<input type="text" name="archivo" size="22" maxlength="150">
<input type="submit" value="Borrar">
</form>
<?
$archivo= "archivo";
unlink($archivo);
if (unlink ($archivo)) {
print ("fichero borrado");
}
else {
print ("fichero no borrado");
}
?>
Warning: unlink(archivo): No such file or directory in
/../public_html/borrar/borrar.php on line 14
<?
$archivo= "archivo";
exec("rm $archivo '.$archivo.'");
?>
aquí no saca ningún error, pero tampoco lo borra.
Algien me puede echar una mano
Gracias
sicampa
2005-05-14 13:40:54 UTC
Permalink
Post by and3
Hola a todos.
Necesito un script que elimine desde la Web, a través de un formulario, un
archivo que se encuentra en el servidor.
<form name="formulario" action="borrar.php" method="get">
<input type="text" name="archivo" size="22" maxlength="150">
<input type="submit" value="Borrar">
</form>
<?
$archivo= "archivo";
unlink($archivo);
if (unlink ($archivo)) {
print ("fichero borrado");
}
else {
print ("fichero no borrado");
}
?>
Warning: unlink(archivo): No such file or directory in
/../public_html/borrar/borrar.php on line 14
<?
$archivo= "archivo";
exec("rm $archivo '.$archivo.'");
?>
aquí no saca ningún error, pero tampoco lo borra.
Algien me puede echar una mano
Gracias
Como es te busca un archivo nombrado "archivo" que claro no encuentra.
pon:
$archivo = $_GET['archivo'];

sicampa
and3
2005-05-14 16:50:42 UTC
Permalink
Post by sicampa
Como es te busca un archivo nombrado "archivo" que claro no encuentra.
$archivo = $_GET['archivo'];
sicampa
Funciona perfectamente.

Gracias
Alvaro G Vicario
2005-05-16 09:24:30 UTC
Permalink
Post by and3
<?
$archivo= "archivo";
unlink($archivo);
Doy por sentado que sólo has recortado el código irrelevante y que tu
script no permite al visitante eliminar cualquier archivo del disco duro
sobre el que tenga permisos el usuario del servidor web, ¿verdad? :)

A los campos de formularios no se accede como tú lo haces (entonces, ¿cómo
podría distinguir PHP entre un formulario y una cadena literal). Lo
correcto:

$archivo= $_GET['archivo'];
unlink($archivo);
Post by and3
Warning: unlink(archivo): No such file or directory in
/../public_html/borrar/borrar.php on line 14
¿Existe un archivo llamado 'archivo' en el directorio actual?
Post by and3
$archivo= "archivo";
exec("rm $archivo '.$archivo.'");
?>
aquí no saca ningún error, pero tampoco lo borra.
Estás ejecutando este comando:

rm archivo '.archivo.'

El comando lógicamente es totalmente correcto. Imagino que rm imprime
sendas líneas informando de que los archivos no existen, pero nunca recoges
la salida del comando.


PHP no es muy complicado pero resulta conveniente leer un poquito sobre la
sintaxis básica del lenguaje, así como hojear la página de manual de las
funciones la primera vez que las uses.
--
-- Álvaro G. Vicario - Burgos, Spain
-- http://bits.demogracia.com - Mi sitio sobre programación web
-- Don't e-mail me your questions, post them to the group
--
countach
2005-05-16 09:48:10 UTC
Permalink
Post by Alvaro G Vicario
PHP no es muy complicado pero resulta conveniente leer un poquito
sobre la sintaxis básica del lenguaje, así como hojear la página de
manual de las funciones la primera vez que las uses.
:-]
Continúe leyendo en narkive:
Loading...