Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Programación General (http://www.forosdelweb.com/f14/)
-   -   500 Internal Server Error (http://www.forosdelweb.com/f14/500-internal-server-error-85848/)

uniyo 23/06/2002 14:01

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

MMontes 24/06/2002 15:11

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
;


uniyo 24/06/2002 23:20

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

MMontes 25/06/2002 00:04

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 ;)


La zona horaria es GMT -6. Ahora son las 23:02.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.