Foros del Web » Programación para mayores de 30 ;) » Programación General »

500 Internal Server Error

Estas en el tema de 500 Internal Server Error en el foro de Programación General en Foros del Web. Hola, estaba poniendo un cgi para que los usuarios puedan cargar fotos desde mi pagina, pero sale un error: 500 Internal Server Error. En el ...
  #1 (permalink)  
Antiguo 23/06/2002, 14:01
 
Fecha de Ingreso: junio-2002
Mensajes: 3
Antigüedad: 22 años, 5 meses
Puntos: 0
500 Internal Server Error

Hola, estaba poniendo un cgi para que los usuarios puedan cargar fotos desde mi pagina, pero sale un error: 500 Internal Server Error.
En el archivo "error_log" aparece el mensaje: Premature end of script headers

Pueden decirme que esta mal?. el cgi es el siguiente:

#!/usr/bin/perl -w
use CGI;
$upload_dir = "/home/mywebsite/htdocs/upload";
$query = new CGI;
$filename = $query->param("photo"); $email_address = $query->param("email_address"); $filename =~ s/.*[\/\\](.*)/$1/; $upload_filehandle = $query->upload("photo");
open UPLOADFILE, ">$upload_dir/$filename";
while ( <$upload_filehandle> ) { print UPLOADFILE; }
close UPLOADFILE;
print $query->header ( ); print <<END_HTML;
<HTML> <HEAD> <TITLE>Thanks!</TITLE> </HEAD>
<BODY>
<P>Thanks for uploading your photo!</P> <P>Your email address: $email_address</P> <P>Your photo:</P> <img src="/upload/$filename" border="0">
</BODY> </HTML>
END_HTML;

Gracias
  #2 (permalink)  
Antiguo 24/06/2002, 15:11
 
Fecha de Ingreso: noviembre-2001
Mensajes: 415
Antigüedad: 23 años
Puntos: 0
Re: 500 Internal Server Error

la última línea esta mal.

si pones print <<BLA;

imprime el texto hasta que encuentra una linea que diga pura, única y exclusivamente "BLA". Y en la última línea dice "BLA;".

tenes que ponerlo asi:
Código:
</body></html>
END_HTML
;
  #3 (permalink)  
Antiguo 24/06/2002, 23:20
 
Fecha de Ingreso: junio-2002
Mensajes: 3
Antigüedad: 22 años, 5 meses
Puntos: 0
Re: 500 Internal Server Error

Bueno amigo, hice lo que dijiste, pero aun no funciona. El cgi quedo asi:

chmod 755 upload.cgi
#!/usr/bin/perl -w
use CGI;
$upload_dir = "/home/mywebsite/htdocs/upload";
$query = new CGI;
$filename = $query->param("photo"); $email_address = $query->param("email_address"); $filename =~ s/.*[\/\\](.*)/$1/; $upload_filehandle = $query->upload("photo");
open UPLOADFILE, ">$upload_dir/$filename";
while ( <$upload_filehandle> ) { print UPLOADFILE; }
close UPLOADFILE;
print $query->header ( ); print <<END_HTML;
<HTML> <HEAD> <TITLE>Thanks!</TITLE> </HEAD>
<BODY>
<P>Thanks for uploading your photo!</P> <P>Your email address: $email_address</P> <P>Your photo:</P> <img src="/upload/$filename" border="0">
</BODY> </HTML>
END_HTML
;

Yo supongo que el error es del cgi, por el mensaje: Premature end of script headers: /usr/local/psa/home/vhosts/mydomain.com/cgi-bin/upload.cgi

Gracias por tu interes MMontes, el cgi lo saque de http://www.webmasterbase.com/article.php?pid=0&aid=474 , tal vez si le das una ojeada ves que esta mal

Ahi nos vemos
Enrique
  #4 (permalink)  
Antiguo 25/06/2002, 00:04
 
Fecha de Ingreso: noviembre-2001
Mensajes: 415
Antigüedad: 23 años
Puntos: 0
Re: 500 Internal Server Error

Código:
#!/usr/bin/perl -w
use CGI;
$upload_dir = "/home/mywebsite/htdocs/upload";
$query = new CGI;
$filename = $query->param("photo"); $email_address = $query->param("email_address"); $filename =~ s/.*[\/\\](.*)/$1/; $upload_filehandle = $query->param  ("photo");
open UPLOADFILE, ">$upload_dir/$filename";
while ( <$upload_filehandle> ) { print UPLOADFILE; }
close UPLOADFILE;
print $query->header ( ); print <<END_HTML;
<HTML> <HEAD> <TITLE>Thanks!</TITLE> </HEAD>
<BODY>
<P>Thanks for uploading your photo!</P> <P>Your email address: $email_address</P> <P>Your photo:</P> <img src="/upload/$filename" border="0">
</BODY> </HTML>
END_HTML
;
no existe el metodo upload en el package CGI, no se de donde lo sacaron. Además, el param si es un archivo el parametro no es solo los datos sino un filehandle.

Deja bastante que desear el script, te recomendaría que busques alguno mejor, o -mejor aún- que te hagas uno a tu medida ;)
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 23:10.