Foros del Web » Programando para Internet » PHP »

upload com header

Estas en el tema de upload com header en el foro de PHP en Foros del Web. Muy buenas; Tengo este script en php para subir imágenes a mi servidor, que está mu facilito y creo que no hace falta explicación. Código ...
  #1 (permalink)  
Antiguo 14/02/2003, 11:48
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 21 años, 9 meses
Puntos: 0
upload com header

Muy buenas;

Tengo este script en php para subir imágenes a mi servidor, que está mu facilito y creo que no hace falta explicación.

Código PHP:
$extension explode(".",$archivo_name); 
$num count($extension)-1
if(
$extension[$num] == "jpg"

if(
$archivo_size 30000

if(!
copy($archivo"archivos/".$archivo_name)) 

echo 
"error al copiar el archivo"

else 

echo 
"archivo subido con exito"


else 

echo 
"el archivo supera los 30kb"


else 

echo 
"el formato de archivo no es valido, solo .jpg"

El problema está en que tengo OBLIGATORIAMENTE que insertarlo entre las etiquetas body de HTML, no dejándome añadirle un header ("Location... ya que me dice que: header already exist... , como si ya hubiera una cabecera.

¿Saben cómo puedo añadírsela sin que me dé dicho error?

Pd: den por supuesto que quité todo el HTML y que el único codigo que tengo es el mostrado más el respectivo header que falla.

Gracias
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.

Última edición por ferent; 14/02/2003 a las 11:50
  #2 (permalink)  
Antiguo 14/02/2003, 12:00
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Hola,

Si muestras algo en el navegador antes del header() te da ese error. ¿Por que dices que obligatoriamente tienes que ponerlo dentro del body? Si es porque quieres mostrar texto y despues redireccionarte, usa javascript o meta-tags para la redireccion. Con el header("location") no te mostraria nada de la pagina. Porque se "ejecuta" antes de mostrar el contenido en el navegador.

Otra opcion es que por diseño hayas colocado el header() despues de mandar salida al navegador, pero lo que quieres realmente es que no muestre esa salida y haga la redireccion directamente. En ese caso podrias jugar con las funciones de control de buffer, como ob_start() (buscala en el manual).

Espero haber sido de ayuda.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 14/02/2003, 12:30
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 21 años, 9 meses
Puntos: 0
¿osea, que el problema está en los "echo"?

¿Podrías decirme qué parte es la que está mostrando algo antes del navegador?

Pruebalo, si pones dicho script con un header al final da ese error, pero ¿qué es lo que está mostrando?

Gracias
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.

Última edición por ferent; 14/02/2003 a las 12:49
  #4 (permalink)  
Antiguo 14/02/2003, 13:02
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Hola,

Mira, en el error ese de headers already sent tambien te dice en que linea del fichero se genero la salida. Como ya te he dicho, antes del codigo PHP no debe haber ningun codigo HTML, ni siquiera lineas en blanco. Es decir, el primer caracter del fichero del header debe ser <?php. Tambien debes tener cuidado si incluyes ficheros, porque puede que tengan alguna linea en blanco despues del ?>. Eliminalas si se da el caso. Pero recuerda que en el mensaje de error te dice la linea y el fichero que genero la primera salida.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 14/02/2003, 19:27
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
feret ..

En PHP vete olvidandote del concepto de <body> y <head> que se usa mucho para javascript .. PHP se ejecuta en el servidor y se hace antes q cualquier HTML/javascript o cualquier lenguaje del "lado del servidor" q pudieras tener .. Así q no hay gustificación alguna para decir q cierto script PHP va entre "<body>" ..

Con PHP "Generas" la página completa en el servidor y esta se envia al navegador una vez procesada (generado tudo el HTML y Javacript .. etc) q pudiera tener .. Una vez en el cliente (en el navegador en estos casos) se interpreta la parte de lenguajes del lado del servidor q pudireas haber generado (escrito al vuelo .. por decirlo de alguna manera) en el navegador (cliente) ...

Un saludo,
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 05:41.