Foros del Web » Programando para Internet » PHP »

error de script

Estas en el tema de error de script en el foro de PHP en Foros del Web. muy buenas estoy trabajando sobre este script que debería de subir una imagen a una carpeta y colocar el nombre de la imagen en una ...
  #1 (permalink)  
Antiguo 24/02/2012, 13:06
 
Fecha de Ingreso: agosto-2011
Ubicación: barcelona
Mensajes: 237
Antigüedad: 12 años, 8 meses
Puntos: 1
error de script

muy buenas estoy trabajando sobre este script que debería de subir una imagen a una carpeta y colocar el nombre de la imagen en una base de datos es problema que me lanza un error ( datos del $_POST incorrectos ) pero no lo logro solucionar no veo el porque.

aquí el formulario que hace la llamada al archivo php que contiene el script:

Código HTML:
Ver original
  1. <form action="logo.php" method="post" enctype="multipart/form-data" name="form2" id="form2">
  2.     <table align="center">
  3.       <tr valign="baseline">
  4.         <td nowrap="nowrap" align="right">Tienda:</td>
  5.         <td><input type="text" name="tienda" value="<?php echo $_SESSION['MM_Username']; ?>" size="32" /></td>
  6.         </tr>
  7.       <tr valign="baseline">
  8.         <td nowrap="nowrap" align="right">Logo:</td>
  9.         <td><input type="file" name="logo" id="logo" /></td>
  10.         </tr>
  11.       <tr valign="baseline">
  12.         <td nowrap="nowrap" align="right">&nbsp;</td>
  13.         <td><input type="submit" value="Insertar imagen" /></td>
  14.         </tr>
  15.     </table>
  16.     <input type="hidden" name="MM_insert" value="form2" />
  17.   </form>

y aquí el script:

Código PHP:
Ver original
  1. <?php
  2.  
  3.     // Pon esto en un include para no escribir la conexión en cada script p.e: include ('conexion.php');
  4.        $link = mysql_connect("localhost","root","");
  5.     mysql_select_db("blueberryswebtiendas",$link);
  6.     ////////////////////////////////////////////////
  7.    
  8.     // Comprobamos los datos:
  9.     if(isset($_POST['logo']) and !empty($_POST['logo']) and
  10.     isset($_POST['tienda']) and !empty($_POST['tienda']) and isset ($_FILES['logo']['name']))
  11.     {
  12.         //Pon seguridad en tus variables post para evitar inyecciones, usa expresiones regulares y mysql_real_escape_string()
  13.         $fondo  = $_POST['logo'];  
  14.         $tienda = $_POST['tienda'];
  15.    
  16.         //Cuando subas el script a tu web elimina los mysql_error para evitar dar información de tu BD
  17.         //Eliminé los $links de la conexión que no hacen falta en la consulta. Ya la tienes abierta.
  18.         if($sql = mysql_query("select count(*) as total from diseny where tienda =". $tienda)
  19.         or die("Ha habido un error al insertar los valores. Error: ".mysql_error() ) )
  20.         {
  21.            
  22.             $flag = false; // boolean para comprobar que entro en el update o el insert
  23.             $row = mysql_fetch_array($sql);
  24.  
  25.             if ($row['total'] > 0) // el usuario ya existe
  26.             {            
  27.                 // SENTENCIA DE ACTUALIZACIÓN para actualizar los campos
  28.                 if (mysql_query ("UPDATE diseny SET logo='".$_POST['logo']."',tienda='".$_POST['tienda']."' WHERE tienda = ".$tienda) or die( mysql_error() ) )
  29.                 {
  30.                     $flag = !$flag;
  31.                 }
  32.             }
  33.             else // el usuario no existe
  34.             {
  35.                 // SENTENCIA DE INSERCIÓN si es un campo nuevo lo insertamos
  36.                 if (mysql_query("INSERT INTO diseny (logo,tienda) VALUES ('".$_POST['logo']."','".$_POST['tienda']."')") or die( mysql_error() ) )
  37.                 {
  38.                     $flag = !$flag;
  39.                 }
  40.             }
  41.            
  42.             //Si se actualizó o insertó procedemos a subir la imagen:
  43.             if($flag == true)
  44.             {
  45.                 echo 'entró';    
  46.                
  47.                 //guardar imagen en carpeta
  48.                 $nombre_archivo=$_FILES['logo']['name'];
  49.                 echo $nombre_archivo;
  50.                 $tamano = $_FILES['logo']['size'];
  51.                    
  52.                 if($tamano > 100000000)
  53.                 {
  54.                     echo " OCUPA DEMASIADO.";    
  55.                 }
  56.                 else
  57.                 {
  58.                     if(move_uploaded_file($_FILES['logo']['tmp_name'],"imglogo/" . $nombre_archivo))
  59.                         echo " HA SIDO SUBIDO.";
  60.                     else
  61.                         echo " NO HA SIDO SUBIDO.";
  62.                 }                    
  63.             }
  64.             else
  65.             {
  66.                 echo 'No se ha podido proceder';    
  67.             }
  68.      
  69.         }
  70.         else //Comprobamos tbn que entró en la consulta y si no, lo mostramos en pantalla.
  71.         {
  72.             echo 'No se encuentra ese elemento en la BD';
  73.         }
  74.     }
  75.     else
  76.     {
  77.         echo 'datos del $_POST incorrectos';    
  78.     }
  79.  
  80. ?>

bueno gracias por su tiempo
  #2 (permalink)  
Antiguo 24/02/2012, 13:25
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: error de script

seria bueno que posteara el texto de los errores
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 24/02/2012, 13:35
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 1 mes
Puntos: 406
Respuesta: error de script

o.O estas intentando acceder a 'logo' desde $_POST cuando es $_FILES
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #4 (permalink)  
Antiguo 24/02/2012, 13:35
 
Fecha de Ingreso: agosto-2011
Ubicación: barcelona
Mensajes: 237
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: error de script

me muestra esto datos del $_POST incorrectos, ningun error solo esto
  #5 (permalink)  
Antiguo 24/02/2012, 13:37
 
Fecha de Ingreso: agosto-2011
Ubicación: barcelona
Mensajes: 237
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: error de script

Nemutagk lo he intentado cambiar pero o me sube la imagen ala carpeta o me la pone en la bd pero las dos cosas a la vez no haaaaaaaa me desespera
si cambio todos los $_POST('logo') por $_FILES('logo') la imagen sube a la carpeta pero en la base de datos en vez de poner el nombre de la imagen pone array que puede ser
  #6 (permalink)  
Antiguo 24/02/2012, 13:48
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 1 mes
Puntos: 406
Respuesta: error de script

A ver, no, estas confundiendo, una cosa es $_POST y otra $_FILES, no puedes acceder a un objeto de un tipo desde el otro...

Código PHP:
Ver original
  1. //MAL!!!
  2. if(isset($_POST['logo']) and !empty($_POST['logo']) and
  3.     isset($_POST['tienda']) and !empty($_POST['tienda']) and isset ($_FILES['logo']['name']))
  4.     {
  5.  
  6. }
  7.  
  8.  
  9. //bien!,  
  10. if(isset($_POST['tienda']) && !empty($_POST['tienda']) && isset ($_FILES['logo']['name']))
  11.     {
  12.  
  13. }
  14.  
  15. //MAL
  16. mysql_query ("UPDATE diseny SET logo='".$_POST['logo']."',tienda='".$_POST['tienda']."' WHERE tienda = ".$tienda) or die( mysql_error() ) )
  17.  
  18. //bien
  19. mysql_query ("UPDATE diseny SET logo='".$_FILES['logo']['name']."',tienda='".$_POST['tienda']."' WHERE tienda = ".$tienda) or die( mysql_error() ) )

Has todos los cambios pertinentes y prueba de nuevo...

Actualización: Esta mal como estas usando WHERE en tu sentencia SQL, al ser string $tienda DEBES cerrarla entre comillas, únicamente los números (int) van sin comillas en una sentencia SQL...

Código PHP:
Ver original
  1. mysql_query ("UPDATE diseny SET logo='".$_FILES['logo']['name']."',tienda='".$_POST['tienda']."' WHERE tienda = '".$tienda."'") or die( mysql_error() ) )
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #7 (permalink)  
Antiguo 24/02/2012, 14:02
 
Fecha de Ingreso: agosto-2011
Ubicación: barcelona
Mensajes: 237
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: error de script

Nemutagk gracias ahora probare

Etiquetas: formulario, mysql, sql, variables, usuarios
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 15:14.