Ver Mensaje Individual
  #5 (permalink)  
Antiguo 24/02/2013, 06:16
Avatar de Nemutagk
Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 8 meses
Puntos: 406
Respuesta: Error enviando noticias con o sin imágenes a base de datos desde formulari

Que tal, tu problema es porque por defecto PHP tiene un limite de 2mb por archivo a subir, mas a parte, también existe un limite de 30 segundos para tener en ejecución un archivo PHP (el archivo se mantiene ejecutando mientras se sube el archivo), si se sobre pasa cualquiera de las limitaciones se cancela la subida de archivos, puedes ampliar esta limitación desde el mismo archivo usando la función ini_set() y las variables "upload_max_filesize", "post_max_size" y "max_execution_time" o desde el archivo php.ini...

Por otro lado, te hago unas recomendaciones, es mejor usar isset() o empty() para verificar si una variable existe, ya que si haces una comprobación directamente con if este generará un error a nivel "notice" o como mucho "alert", pero sea cual sea el nivel de error al final... es un error >.<

Con referencia al anterior, es mejor comprobar si hay un archivo a subir usando is_uploaded_file() que con cualquier otra función, ya que los archivos pueden ser "inyectados" (no recuerdo en este momento el nombre correcto), por lo tanto la función verifica que el archivo sea subido realmente por un formulario con metodo POST y que no provenga desde otra fuente...

Si vas a subir imagenes te recomiendo encarecidamente que uses otro metodo para saber si es una imagen REAL, ya que la variable $_FILES['archivo']['type'] es proporcionada por el navegador, y este se basa sobre la extención del archivo y no sobre el mime-type real, por otro lado, esta variable es manipulable de manera muy facil, si son imagenes puedes usar la función getimagesize() la cual retornará información del archivo, como su alto, su ancho, si tipo (real) y otros 4 elementos mas "específicos"

Y por ultimo, no veo que "guardes" el archivo en ningún lugar de tu código, recuerda que PHP sube el archivo a una carpeta temporal, de hay tu tienes que moverla a su destino final para que pueda ser manipulable y accesible, para eso es necesario usar move_uploded_file()
__________________
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 =)