Bash, Shell, PHP, Python, Perl, CGI
der dude
Posts: 114 Joined: 2005-03-04 18:46
Post
by der dude » 2005-08-26 10:28
Hallo,
ja ich weiß, das Thema gabs schon 100 mal. Ich habe mir auch schon alle angeschaut.
Allerdings weiß ich noch immer nicht, wo der Fehler ist.
In der Suexec steht folgendes:
Code: Select all
[2005-08-26 10:16:57]: uid: (647/kunde1) gid: (647/647) cmd: test.pl
Im error_log:
Code: Select all
[Fri Aug 26 10:16:57 2005] [error] [client XXX] Premature end of script headers: test.pl
- Das Script habe ich schon überprüft. Syntax OK
- Die Rechte sind 755
- Im ASCII Modus geuppt
Das Script liegt im Ordner cgi-bin. Das komische ist aber, das im gleichen Ordner auch awstats.pl liegt. Und dies wird ohne Probs ausgeführt. Ich weiß hier echt nicht mehr weiter.
Gruß
Roger Wilco
Posts: 5923 Joined: 2004-05-23 12:53
Post
by Roger Wilco » 2005-08-26 11:52
Schau in dein suexec.log.
der dude
Posts: 114 Joined: 2005-03-04 18:46
Post
by der dude » 2005-08-26 11:59
Hab ich ja gepostet. Aber was ist daran falsch? Ich kann da keinen Fehler entdecken.
Gruß
Roger Wilco
Posts: 5923 Joined: 2004-05-23 12:53
Post
by Roger Wilco » 2005-08-26 12:06
Der Dude wrote: Hab ich ja gepostet. Aber was ist daran falsch? Ich kann da keinen Fehler entdecken.
Hm, ok, wer lesen kann ist klar im Vorteil, sorry.
Was steht denn in test.pl? Was gibt `cat -v test.pl` aus?
der dude
Posts: 114 Joined: 2005-03-04 18:46
Post
by der dude » 2005-08-26 12:17
Hi,
der Inhalt von test.pl ist folgender:
Code: Select all
cat -v test.pl
#!/usr/bin/perl
print $ENV{'QUERY_STRING'};
print "Test!";
Ist halt nur ein ganz kleines Testscript.
Gruß
Joe User
Project Manager
Posts: 11182 Joined: 2003-02-27 01:00
Location: Hamburg
Post
by Joe User » 2005-08-26 12:22
Der Dude wrote: Ist halt nur ein ganz kleines Testscript.
Richtig, es ist ein Script, aber kein CGI. Du musst mindestens den Content-Type-Header senden...
whisper
Posts: 29 Joined: 2005-08-26 11:26
Post
by whisper » 2005-08-26 12:45
da ich mit Perl auf Kriegsfuss stehe, hier ein kleines Beispiel (Asusschnitt) in shell
Da sind man den Content-Type sehr schön.
Wichtig die Leerzeile danach gehört mit zur Syntax vom Content-type
Code: Select all
#!/bin/sh
# disable filename globbing
set -f
echo Content-type: text/html
echo
echo "<html>"
echo "<head>"
echo "<title>Sysinfo für arme</title>"
echo "</head>"
echo "<body>"
echo "<pre>"
#env
echo "</pre>"
echo "<pre>"
echo "<hr>"
df -h
echo "</pre>"
echo "<pre>"
echo "<hr>"
free
echo "</pre>"
der dude
Posts: 114 Joined: 2005-03-04 18:46
Post
by der dude » 2005-08-26 12:48
Hm,
das Script wird über eine normale html Seite aufgerufen:
Code: Select all
<form action="/cgi-bin/test.pl" method="get">
<input type="text" name="firma" size=28 type="text">
<input type="submit">
</form>
Mehr ist das nicht.
Was soll denn daran Fehlen?
Gruß
whisper
Posts: 29 Joined: 2005-08-26 11:26
Post
by whisper » 2005-08-26 12:53
dies hier
echo Content-type: text/html
echo
oder in perl wahrscheinlich :
print "Content-type: text/html"
print ""
wgot
Posts: 1675 Joined: 2003-07-06 02:03
Post
by wgot » 2005-08-26 23:11
Hallo,
whisper wrote: print "Content-type: text/html"
print ""
print sendet automatisch keine Zeilenendekennung, deshalb:
Code: Select all
print "Content-type: text/htmlnn";
Gruß, Wolfgang