perl-skript wird zum download angeboten...

Apache, Lighttpd, nginx, Cherokee
quelleq
Posts: 15
Joined: 2003-12-08 10:13
Location: Hamburg

perl-skript wird zum download angeboten...

Post by quelleq »

Hallo Allerseits,

ich habe versucht ein Problem zu lösen - ging nicht (jedenfalls von mir nicht ;-)

Es geht um ein Perl-Skript, das nach einem Server-Update (jetzt Suse 9.3 + Plesk 8.1) nicht mehr ausgeführt wird.

Bei dem Versuch es auszuführen, wird es zum download angeboten. Das error_log meint dazu:

[Sat Mar 24 17:42:12 2007] [error] [client 82.83.76.254] malformed header from script. Bad header=<html>: th_kalender.pl, referer: http://www.domain.de/?index=veranstaltu ... 1850898400
[Sat Mar 24 17:42:12 2007] [warn] /cgi-bin/th_kalender.pl did not send an HTTP header
[Sat Mar 24 18:38:09 2007] [error] [client 213.39.160.108] malformed header from script. Bad header=<html>: th_kalender.pl, referer: http://www.domain.de/cgi-bin/th_kalender.pl
[Sat Mar 24 18:38:09 2007] [warn] /cgi-bin/th_kalender.pl did not send an HTTP header
[Sat Mar 24 18:52:50 2007] [error] [client 213.39.160.108] malformed header from script. Bad header=<html>: th_kalender.pl, referer: http://www.domain.de/cgi-bin/th_kalender.pl
[Sat Mar 24 18:52:50 2007] [warn] /cgi-bin/th_kalender.pl did not send an HTTP header

Es geht also um den HTTP header, nicht wahr?

In der zur Domain gehörigen httpd.include steht:

<IfModule mod_php5.c>
php_admin_flag engine on
php_admin_flag safe_mode on
php_admin_value open_basedir "/srv/www/vhosts/domain.de/httpdocs/htdocs:/srv/www/vhosts/domain.de/httpdocs/inc/:/tmp"
</IfModule>

Funktioniert das Skript nicht, weil die Variablen vor dem Übergeben nicht gesetzt werden? Oder liegt das Problem noch woanders? Ich habe mir gedacht, dass sich das Problem lösen lässt, wenn ich a) genügend Perl lerne, um die Variable vorm Übergeben zu definieren oder b) php_admin_flag register_globals off ergänze. Aber das funktioniert auch nicht...

Oder liegt das Problem noch woanders?
Gruß Helge

User avatar
Joe User
Project Manager
Project Manager
Posts: 11150
Joined: 2003-02-27 01:00
Location: Hamburg

Re: perl-skript wird zum download angeboten...

Post by Joe User »

Dein Problem hat nichts mit PHP zu tun, da es ein Perl-Script ist.

Code: Select all

head -n 10 /path/to/cgi-bin/th_kalender.pl
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

Roger Wilco
Administrator
Administrator
Posts: 5923
Joined: 2004-05-23 12:53

Re: perl-skript wird zum download angeboten...

Post by Roger Wilco »

quelleq wrote:

Code: Select all

[Sat Mar 24 17:42:12 2007] [error] [client 82.83.76.254] malformed header from script. Bad header=<html>: th_kalender.pl, referer: http://www.domain.de/?index=veranstaltung&mode=info&veranstaltung=Familienfreizeit&datum_start=1850898400
[Sat Mar 24 17:42:12 2007] [warn] /cgi-bin/th_kalender.pl did not send an HTTP header
Die Problemursache steht da eindeutig...

quelleq
Posts: 15
Joined: 2003-12-08 10:13
Location: Hamburg

Re: perl-skript wird zum download angeboten...

Post by quelleq »

Hallo Roger Wilco,

würdest du mir beim Lesen helfen?

Im Skript selbst steht

print "Content-type: text/htmlnn";
print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">', "n";

sub Header {
($title) = @_;

print <<_ENDE;

<html>
...

Insofern wird schon ein Header übermittelt. Es muss also noch um etwas anderes gehen.

Gruß Helge

Roger Wilco
Administrator
Administrator
Posts: 5923
Joined: 2004-05-23 12:53

Re: perl-skript wird zum download angeboten...

Post by Roger Wilco »

quelleq wrote:Insofern wird schon ein Header übermittelt. Es muss also noch um etwas anderes gehen.
Was gibt das Skript aus, wenn du es auf der Shell ausführst?
Werden die HTTP-Header auch bei dem Ausführungspfad ausgegeben, der mit den Parametern index=veranstaltung, mode=info, veranstaltung=Familienfreizeit, datum_start=1850898400 gewählt wird?

quelleq
Posts: 15
Joined: 2003-12-08 10:13
Location: Hamburg

Re: perl-skript wird zum download angeboten...

Post by quelleq »

War heute nicht am Rechner, daher erst jetzt meine Antwort...

Führe ich die Datei auf der Shell aus (perl th_kalender.pl), dann bekomme ich folgende Ausgabe:


Content-type: text/html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>

...

Vielleicht kann ich noch ergänzen, dass wenn ich das Skript einmalig über den Browser aufrufe, es auch korrekt ausgeführt wird. Beim zweiten Aufruf, bekomme ich dann die Datei zum Download angeboten.

Eine Fehlermeldung erscheint nicht im error_log.

Kann es nicht vielleicht doch mit register_global zusammen hängen. Ich probiere noch einmal ein bischen rum.

Gruß Helge

Roger Wilco
Administrator
Administrator
Posts: 5923
Joined: 2004-05-23 12:53

Re: perl-skript wird zum download angeboten...

Post by Roger Wilco »

quelleq wrote:Content-type: text/html
Probier es spasseshalber mal mit großem T, also "Content-Type: text/html".
quelleq wrote:Kann es nicht vielleicht doch mit register_global zusammen hängen.
Nein.