Foros del Web » Programando para Internet » PHP »

No funciona la actualizacion....

Estas en el tema de No funciona la actualizacion.... en el foro de PHP en Foros del Web. Alguien me sabe decir por que no funciona este escript que uso para actualizar unas fotos en mi BD??? en local funciona, pero en el ...
  #1 (permalink)  
Antiguo 18/11/2005, 11:39
 
Fecha de Ingreso: abril-2005
Mensajes: 372
Antigüedad: 19 años
Puntos: 0
No funciona la actualizacion....

Alguien me sabe decir por que no funciona este escript que uso para actualizar unas fotos en mi BD??? en local funciona, pero en el host remoto nop.....y no se por que
Código PHP:
<?php 
include("../includ/cnn.php"); //archivo de conección
$idd $_GET['idd']; 

if (
$submit) { 
 
$form_data=$_FILES['form_data']['tmp_name']; 
   
    
$data addslashes(fread(fopen($form_data"rb"), filesize($form_data))); 

    
$strSQL="UPDATE fotos SET 
    descripcion='$form_description', foto='$data', nombre='$form_data_name', tamano='$form_data_size', tipo='$form_data_type'
    WHERE id=$clave LIMIT 1"

    
mysql_query($strSQL); 
        if(
mysql_query)
        echo 
"El archivo se actualiz&oacute; correctamente";
        else echo 
"No se ha podido realizar la operaci&oacute;n";


    
} else { 

?>
<link href="../../st/1.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
body {
    background-color: #00FFFF;
}
-->
</style> 

    <form method="post" action="<?php echo $PHP_SELF?>" enctype="multipart/form-data"> 
    Descripci&oacute;n:<br> 
    <input type="text" name="form_description"  size="40"> 
    <input type="hidden" name="MAX_FILE_SIZE" value="1000000"> 
    <input type="hidden" name="clave"  id="clave" value="<?=$idd;?>">
    <br>Archivo nuevo:<br> 
    <input type="file" name="form_data"  size="40"> 
    <p><input name="submit" type="submit" id="submit" value="Enviar"> 
    </form> 

<?php 



?>
  #2 (permalink)  
Antiguo 18/11/2005, 12:50
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pero que problema o error exacto obtienes?

Consejos:

Usa los arrays superglobales para TODO!:

Código PHP:
<input type="hidden" name="clave"  id="clave" value="<? echo $_POST['idd'];?>">
En lugar de:
Código PHP:
<?php echo $PHP_SELF?>"
usa:
Código PHP:
<?php echo $_SERVER['PHP_SELF']; ?>"
Código PHP:
if (isset($_POST['submit'])) { 
$form_data=$_FILES['form_data']['tmp_name']; 
    
    
// esto te podrá dar problemas .. no todo servicio de hosting te dejará
   // acceder así a tu archivo "temporal" por donde PHP los deja hasta que
   // hagas algo con el.
   // En su defecto usa move_uploaded_file() .. te traes el archivo a un
   // directorio de tu sitio y ahí aplicas la misma técnica para leer el archivo, 
   // pero desde tu ruta de tu sitio.

    
$data addslashes(fread(fopen($form_data"rb"), filesize($form_data))); 


    
$strSQL="UPDATE fotos SET 
    descripcion='$form_description', foto='$data', nombre='$form_data_name', tamano='$form_data_size', tipo='$form_data_type' 
    WHERE id='"
.$_GET['clave']."' LIMIT 1"
    
mysql_query($strSQL); 
        if(
mysql_query
        echo 
"El archivo se actualiz&oacute; correctamente"
        else echo 
"No se ha podido realizar la operaci&oacute;n"
Las variables que definen tipo del archivo y peso .. $fom_data_type o size .. debes accederlas por:

$_FILES['form_data']['type'] y ['size'] .. (sustituyelo en tu código).

En general .. Usa los arrays superglobales .. ($_GET, $_POST, $_FILES .. etc) donde correspondan.

Un saludo,
  #3 (permalink)  
Antiguo 18/11/2005, 13:34
 
Fecha de Ingreso: abril-2005
Mensajes: 372
Antigüedad: 19 años
Puntos: 0
Ok, voy a seguir las recomendaciones a ver que pasa y te comento. Respecto a los errores el tema es que no tira absolutamente ninguno, nada, se pone el form en blanco otra vez cada vez que le doy "submit"
Gracias Cluster
  #4 (permalink)  
Antiguo 19/11/2005, 15:34
 
Fecha de Ingreso: abril-2005
Mensajes: 372
Antigüedad: 19 años
Puntos: 0
...Sigue sin funcionar el Update

Hola...me sigue sin funcionar el update y no se que mas hacer, quizas esté haciendo algo mal. Segui las recomendaciones de Cluster...creo...seguramentee stare haciendo algo mal ...Cluster?? tas por ahi?
Este es el codigo
Código PHP:
<?php 
include("../includ/cnn.php");//conexion
$idd $_GET['idd']; 

if (isset(
$_POST['submit'])) { 

$destino="/usr/local/apache/htdocs/servidor.com/sitio.com/tmp";
$path_actual=move_uploaded_file $_FILES 'form_data' ][ 'tmp_name' ], $destino'/' $_FILES 'form_data' ][ 'name' ]); 

 
 
$form_data_name=$_FILES['form_data']['name'];
 
$form_data_size=$_FILES['form_data']['size'];
 
$form_data_type=$_FILES['form_data']['type'];
 
    
$data addslashes(fread(fopen($destino"rb"), filesize($destino))); 

    
$strSQL="UPDATE fotos SET 
    descripcion='$descripcion', foto='$data', nombre='$form_data_name', tamano='$form_data_size', tipo='$form_data_type'
    WHERE id=$clave LIMIT 1"

    
mysql_query($strSQL); 
        if(
mysql_query)
        echo 
"El archivo se actualiz&oacute; correctamente";
        else echo 
"No se ha podido realizar la operaci&oacute;n";


    
} else { 

?>
<link href="../../st/1.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
body {
    background-color: #00FFFF;
}
-->
</style> 

    <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data"> 
    Descripci&oacute;n:<br> 
    <input type="text" id="form_description" name="form_description"  size="40"> 
    <input type="hidden" id="MAX_FILE_SIZE" name="MAX_FILE_SIZE" value="1000000"> 
    <input type="hidden" name="clave"  id="clave" value="<? echo $_GET['idd'];?>">
    <br>Archivo nuevo:<br> 
    <input type="file" name="form_data"  size="40"> 
    <p><input name="submit" type="submit" id="submit" value="Enviar"> 
    </form> 

<?php 



?>
Probe creo que de todo, cuando le doy "Enviar" me tira el echo "el archivo se actualizo correctamente" pero el archivo queda en la carpeta "tmp" que creé en mi sitio, se queda ahí y no sube al servidor...
Gracias por sus ayudasssssss
  #5 (permalink)  
Antiguo 19/11/2005, 16:19
 
Fecha de Ingreso: abril-2005
Mensajes: 491
Antigüedad: 19 años
Puntos: 1
Cita:
Iniciado por otraverix
Probe creo que de todo, cuando le doy "Enviar" me tira el echo "el archivo se actualizo correctamente" pero el archivo queda en la carpeta "tmp" que creé en mi sitio, se queda ahí y no sube al servidor
No se muy bien cual es el contexto de todo el script, pero tu variable destino indica que el archivo se quede en TMP y en ninguna parte, al menos de este pedazo de código, le dices que se mueva a la carpeta definitiva

por ejemplo

Código PHP:
$destino_final="/usr/local/apache/htdocs/servidor.com/sitio.com/carpeta_final"
Suerte Amigo

Última edición por under_ground; 19/11/2005 a las 17:01
  #6 (permalink)  
Antiguo 19/11/2005, 20:13
 
Fecha de Ingreso: abril-2005
Mensajes: 372
Antigüedad: 19 años
Puntos: 0
Teoricamente cuando meto el archivo en "tmp" es para que de ahí suba a mi BD con la sentencia "UPDATE" mysql...el tema es que se queda en tmp. La variable $destino sólo indica el destino previo a subir a la BD ya que el servidor no me deja subirlo directamente desde el "temp" de php.
Alguin sabe?????? que es lo que pasa con este script????????
  #7 (permalink)  
Antiguo 20/11/2005, 16:01
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Temas unidos. Por favor sigue tus temas originales otraverix.

Por otra parte... creo que estás hecho un verdadero lio. Estás combinando 2 métodos diferentes del manejo de archivos: por una parte estás cargando el archivo (sí, lo haces ya) con move_uploaded_file() y por la otra estás guardando el archivo en binario en la Base de Datos... ¿acaso quieres emplear los dos??; lo dudo .

Si quieres hacer un simple upload te sugiero veas la FAQ#12 y partas de cero. Si quieres subir guardar los datos en binario sigue el Tutorial de Cluster al pie de la letra. Si verdaderamente quieres utilizar ambos métodos, creo seria conveniente aclararas el objetivo como para entenderte.

Saludos!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #8 (permalink)  
Antiguo 20/11/2005, 20:05
 
Fecha de Ingreso: abril-2005
Mensajes: 372
Antigüedad: 19 años
Puntos: 0
Hola Jam! el tema es que estoy tratando de guardar las datos en la BD, eso es todo. No lo tengo muy claro como hacerlo, el tema es que mi server no me dejo en un principio manejar mis datos con
Código PHP:
$form_data=$_FILES['form_data']['tmp_name']; 
tones recurri a
Código PHP:
ploaded_file() 
y quize desde alli cargar los datos en mi BD...lo que jamas me funciono. Pero voy a ver los tuto que me dijiste y te cuento, gracias
  #9 (permalink)  
Antiguo 20/11/2005, 20:06
 
Fecha de Ingreso: abril-2005
Mensajes: 372
Antigüedad: 19 años
Puntos: 0
...move_uploaded_file() es lo que quize decir ::):
  #10 (permalink)  
Antiguo 20/11/2005, 20:22
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
... ¿por qué dices que no te permitia usar $_FILES['...']['tmp_name']??. No es más que un valor obtenido. Lo que haces es una asignación, nada del otro mundo... si te impedira usar dicha variable (...) tampoco la podrías usar al hacer move_uploaded_file()... que dicho sea de paso:

Esto que tienes:
Código PHP:
$path_actual=move_uploaded_file $_FILES 'form_data' ][ 'tmp_name'] ... 
Además de hacer uso del supuesto valor prohibido (), esta mal.. la función no te devuelve ningún path, solo TRUE o FALSE. Si haces un echo $path_actual; solo debería imprimirte 1 ó 0.

Bueno, esperemos aclares tu situación con el servidor... y reitero la recomendación a leer la FAQ#12 (por esos detalles del path).

Saludos!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #11 (permalink)  
Antiguo 21/11/2005, 06:20
 
Fecha de Ingreso: abril-2005
Mensajes: 372
Antigüedad: 19 años
Puntos: 0
Jajajaj!! gracias Jam! cuando lo solucione te cuento como hice!
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 08:53.