Foros del Web » Programando para Internet » PHP »

error al borrar y actualizar archivos

Estas en el tema de error al borrar y actualizar archivos en el foro de PHP en Foros del Web. Wenas a tod@s!!! Tengo un problemilla a la hora d borrar archivos. El siguiente script funcionaba bien para eliminar registros de la BD, insertar un ...
  #1 (permalink)  
Antiguo 06/07/2008, 19:35
 
Fecha de Ingreso: abril-2008
Mensajes: 70
Antigüedad: 16 años
Puntos: 1
error al borrar y actualizar archivos

Wenas a tod@s!!!
Tengo un problemilla a la hora d borrar archivos.
El siguiente script funcionaba bien para eliminar registros de la BD, insertar un nuevo registro con el nombre d la imagen a subir en la BD y subir además la imagen.
Pero cuando he intentado q además borre la imagen del directorio y no sólo d la BD me dice q no tengo los permisos o q exsite un error en la sintaxis del SQL. En principio la idea es poder "actualizar" la foto d manera q borre todo e inserte todo nuevamente una vez seleccionada la imagen.
Espero haberme explicado bien; muchísimas gracias d antemano a tod@s x vuestra desinteresada participación

Código PHP:
   <?php   mysql_connect("localhost","root",""); 
    
mysql_select_db("base");  
    
    
$correo $_SESSION["MM_Username"]; 
    
$contra  $_POST["contra"];
    
$nombre  $_POST["nombre"];
    
$tlf  $_POST["tlf"];
    
$direccion  $_POST["direccion"];
    
$localidad  $_POST["localidad"];
    
$imagen $row_juegoderegistro["imagen"]; 
    

    
mysql_query("select * from clientes where correo = $correo"); 
    if (!(
$imagen=="images2/"))
        
unlink($imagen);  
         
    
mysql_query("delete from clientes where correo = $correo"); 
     
 if (isset(
$_POST['submit'])) {   
    if(
is_uploaded_file($_FILES['imagen']['tmp_name'])) { 
     
        
$ruta_destino "images2/"
        if(
move_uploaded_file($_FILES['imagen']['tmp_name'], $ruta_destino $_FILES['imagen']['name']));
       
       
  
mysql_select_db($database_base$base);
  
$Result1 mysql_query($deleteSQL$base) or die(mysql_error());


 
$query "INSERT INTO clientes  
    VALUES ('$correo','$contra', '$nombre', '$tlf','$direccion','$localidad', '"
.$_FILES['imagen']['name']."')"
                
mysql_query($query) or die(mysql_error()); 
        }  
    }  
?>
Básicamente el erro está en la línea q se corresponde con el "unlink($imagen)"
Gracias otra vez; Salu2!!!

Última edición por pcadict0; 06/07/2008 a las 19:41
  #2 (permalink)  
Antiguo 07/07/2008, 00:26
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: error al borrar y actualizar archivos

Pero tienes problemas de permisos ?... porque si es asi, tal vez puedas subir cosas pero no eliminarlas.
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 07/07/2008, 07:33
 
Fecha de Ingreso: abril-2008
Mensajes: 70
Antigüedad: 16 años
Puntos: 1
Respuesta: error al borrar y actualizar archivos

En concreto, el error q me da es:

Warning: unlink(foto.gif) [function.unlink]: No such file or directory in C:\wamp\www\actualizar2.php on line 119
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@hotmail.com' at line 1

Por si puede servir d ayuda, el formulario viene d una pág anterior (actualizar1.php), y las variables d formulario son enviadas mediante campos ocultos (pues sólo necesito actualizar la foto y NO el resto d los campos, d ahí q los envíe como campos ocultos) mediante "POST". También hay una variable d sesión, q es la clave principal d la tabla "clientes" y se corresponde con la dirección d correo electrónico.
Por eso existen unas cuantas variables d formulario, una variable d sesión (MM_Username) y otra variable asociada a un juego d registros, q es la d la imagen q quiero borrar (d nombre imagen)
No sé q estoy haciendo mal, pero esto no funciona. Y dudo q sea problema d permisos (aunque podría ser q así fuera) xq el servidor es el propio ordenador, ya q uso el "WampServer" y mi PC como servidor d prueba.
Mil gracias x tu interés, un fuerte saludo!!
  #4 (permalink)  
Antiguo 07/07/2008, 08:00
Avatar de liebe13  
Fecha de Ingreso: octubre-2006
Ubicación: peru
Mensajes: 224
Antigüedad: 17 años, 6 meses
Puntos: 3
Respuesta: error al borrar y actualizar archivos

oe men hasvisto los permisos de tu carpeta en la que estas subiendo las imagenes por q a i me pasaba lo mismo y tube q cambiar los permisos de mi carpeta y listo
  #5 (permalink)  
Antiguo 07/07/2008, 08:14
Avatar de alapaco  
Fecha de Ingreso: septiembre-2003
Ubicación: Caballito - Buenos Aires - Argentina - América del Sur - Planeta Tierra - Sistema Solar - Vía Láctea
Mensajes: 216
Antigüedad: 20 años, 8 meses
Puntos: 5
Respuesta: error al borrar y actualizar archivos

Tenes dos problemas:

A) El warning que dice "unlink(foto.gif) [function.unlink]: No such file or directory", el mensaje es clarito, no existe el archivo que queres eliminar, deberias revisar que la ruta completa sea la correcta.

B) Un error que dice: "You have an error in your SQL syntax", tambien es clarito, está mal escrita la sentencia SQL.
Estos dos querys, tal vez deberian quedar así:

Código PHP:
mysql_query("select * from clientes where correo = '$correo'");
mysql_query("delete from clientes where correo = '$correo'"); 
__________________
__________________
Álvaro Lapacó
  #6 (permalink)  
Antiguo 07/07/2008, 08:42
 
Fecha de Ingreso: abril-2008
Mensajes: 70
Antigüedad: 16 años
Puntos: 1
Respuesta: error al borrar y actualizar archivos

Gracias a los dos por sus respuestas, ya lo he solucionado!! :_)
No era problema d SQL, aunq el error q daba así lo parecía, sino d directorio y d "algo" q no entiendo bien el xq no servía.

Por si puede servir a alquien d ayuda, postearé el código y explicaré el error:

Código PHP:
<?php
  
//aquí paso las variables del formulario q vienen d la pág anterior. La clave principal d la tabla 'clientes' es la variable d sesión
 
$correo  $_SESSION["MM_Username"]; 
 
$contra  $_POST["contra"];
 
$nombre  $_POST["nombre"];
 
$tlf  $_POST["tlf"];
 
$direccion  $_POST["direccion"];
 
$localidad  $_POST["localidad"];
 
$borrar $_POST["borrar"];
 
 
    
mysql_query("select * from clientes where correo = $correo"); 
    
//aquí borra la imagen en el caso d q la encuentre
    
if (!($borrar=="images2/"))
        
unlink("./images2/$borrar");    
   
   
//aquí borro los registros de la BD, en el caso d q existan
   
if ((isset($_SESSION['MM_Username'])) && ($_SESSION['MM_Username'] != "")) {
  
$deleteSQL sprintf("DELETE FROM clientes WHERE correo=%s",
                       
GetSQLValueString($_SESSION['MM_Username'], "text"));

  
$deleteGoTo "/actualizar1.php";
  if (isset(
$_SERVER['QUERY_STRING'])) {
    
$deleteGoTo .= (strpos($deleteGoTo'?')) ? "&" "?";
    
$deleteGoTo .= $_SERVER['QUERY_STRING'];
  }
  
header(sprintf("Location: %s"$deleteGoTo));
}


//ahora insertamos las variables d formulario "POST", q viene d actualizar1.php.De esta forma sólo actualizamos la foto 
if (isset($_POST['submit'])) {   
    if(
is_uploaded_file($_FILES['imagen']['tmp_name'])) { 
     
        
$ruta_destino "images2/"
        if(
move_uploaded_file($_FILES['imagen']['tmp_name'], $ruta_destino $_FILES['imagen']['name']));
       
       
  
mysql_select_db($database_base$base);
  
$Result1 mysql_query($deleteSQL$base) or die(mysql_error());

 
$query "INSERT INTO clientes  
    VALUES ('$correo','$contra', '$nombre', '$tlf','$direccion','$localidad', '"
.$_FILES['imagen']['name']."')"
                
mysql_query($query) or die(mysql_error()); 
        }  
    }  
?>

La varable de formulario $borrar se corresponde con la imagen a borrar, aunque ésta se llame "imagen" en el formulario. He asignado el valor d la imagen al campo oculto "borrar" en el formulario y he eliminado la variable del juego d registros llamada $imagen. Le he dado el nombre d borrar para evitar q pudiese interferir con el campo d archivo, q repito se llama imagen. Ahora lo borra perfectamente e inserta correctamente los datos en la BD, los mismo datos a excepción d la imagen.

Si alguien necesita q le explique un poco más algo sobre el formulario, la tabla d la BD o la pág actualizar1.php, por favor, comuníquenlo, q x una vez a lo mejor soy yo el q ayuda a otro a solucionar sus problemas en estos foros

Un fuerte saludo a tod@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 19:35.