Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/10/2012, 14:47
lionel1989
 
Fecha de Ingreso: septiembre-2012
Ubicación: Argentina
Mensajes: 43
Antigüedad: 12 años, 2 meses
Puntos: 0
Comportamiento raro funcion unlink

Hola, estoy teniendo problemas con la funcion unlink.
El php que hice pretende modificar la Base de datos cambiando el contenido de un campo para que refiera a una foto diferente a la que ya esta, y que ademas mueva el archivo que se corresponde con lo que marca la base de datos a la carpeta correspondiente para que luego se pueda visualizar.

Ahora quise agregarle lineas de codigo para que al reemplazar la vieja foto por una nueva, esta se elimine de la carpeta.

if($Foto =! ''){
if(is_file('../'.$fotovieja) ){
unlink( '../'.$fotovieja);
}
}

Pero estoy teniendo un problema extraño.

Sin esas lineas, todo funciona bien.
Pero cuando agrego esas lineas, la foto que se debe eliminar con UNLINK se elimina
pero sin embargo la foto que se mueve a la carpeta se nombre como "1"
y tambien en la base de datos, se nombre como "1".
Y funciona! solo que se nombra como "1", sin extension. Nada de "1.jpg"
Estoy confundido.

Este es el codigo pertinente.

Código PHP:
$cnx mysql_connect('localhost','root','saracatunga');
mysql_select_db("arrorro");

$Nombre $_POST['Nombre']; 
$Descripcion $_POST['Descripcion'];
$Id $_POST['Id'];
///////////
$consulta4modik1 "SELECT * FROM kitnombres
            WHERE kitnombre = '$Id'"
;
$resultado4modik1 mysql_query($consulta4modik1) or die(mysql_error());
$fila4modik1 mysql_fetch_array($resultado4modik1) or die(mysql_error());
$IDP $fila4modik1['IDK'];
$fotovieja $fila4modik1['fotogrande'];
//////////

$fotoName $_FILES['Foto']['name'];


$Foto             $fotoName;

if(
$Foto =! ''){
    if(
is_file('../'.$fotovieja) ){
    
unlink'../'.$fotovieja);
    }
}

if(
$Foto ==''){ //proteccion si no llega nada agarra el que ya esta
    
$Foto $fila4modik1['fotogrande'];
}else{
    
$tmpName  $_FILES['Foto']['tmp_name']; //si este y ruta los pongo arriba me da error
$ruta "../$Foto";
move_uploaded_file($tmpName$ruta);

$original imagecreatefromjpeg('../'.$Foto);
$ancho_original imagesx$original );
$alto_original =  imagesy$original );

$ancho_final 500;
$alto_final 500;
    
if(
ancho_original!=ancho_final or alto_original!=alto_final){
    
$destino imagecreatetruecolor($ancho_final,$alto_final);
    
imagecopyresampled$destino$original0,0,0,0,$ancho_final,$alto_final,$ancho_original,$alto_original );
    
imagejpeg$destino '../'.$Foto);
    
//echo '</br>'.$destino; funca
}
}
//echo $Id; funca


if($Nombre ==''){
    
$Nombre $fila4modik1['kitnombre'];
}

if(
$Descripcion ==''){
    
$Descripcion $fila4modik1['kitdescripcion'];
}


$consulta4modik2 "UPDATE kitnombres SET 
             kitdescripcion='$Descripcion',
             fotogrande='$Foto',
             kitnombre='$Nombre' 
             WHERE IDK = $IDP"

             
$consultando4modik mysql_query($consulta4modik2) or die("</br>El error es que "mysql_error());
header("Location: ../../home.php?seccion=kit&n=$IDP"); 
Las rutas son estas:
C:\AppServ\www\arrorro\SETS

y el archivo del codigo que postie, se encuentra en

C:\AppServ\www\arrorro\SETS\EDITAR

por favor, me pueden aconsejar?

Última edición por lionel1989; 10/10/2012 a las 14:55