CGI Programm läuft nicht

Alles, was Perl betrifft, kann hier besprochen werden.

CGI Programm läuft nicht

Postby Syraxis » 04. April 2007 19:23

Folgende Ausgangssituation:

Ich habe xampp 1.6.0a per Installer installiert. Nun habe ich mir ein CGI Skript aus dem Internet geladen und in der cgi Datei den Pfad folgendermaßen angepasst:

#!C:/Programme/xampp/perl/bin/perl.exe


In meiner HTML Seite habe ich wie in der Readme die dem cgi Skript beilag, beschrieben folgende Zeile eingefügt:

<img src="C:/Programme/xampp/cgi-bin/usercounter.cgi" border=0 width=24 height=24 align=absmiddle> User online


Den Pfad habe ich manuell angepasst, damit er auf die cgi Datei zeigt.

Wenn ich nun die Webseite aufrufe, wird darauf nur das Zeichen für ein "kaputtes Bild" angezeigt. Egal, wie ich die Pfade geändert habe, nie klappt es.

Nach einigem Lesen im Netz bin ich immer noch nicht schlauer, habe aber das perl addon 5.8.8+2.4.4 installiert. Im Statuscheck des xampp ist es auch aktiviert. Aber ab hier weiss ich nicht mehr weiter.

Nun meine Frage: Ist es möglich, das Skript ohne das Addon laufen zu lassen (soll heißen habe ich einfach nur etwas falsch gemacht)?

Falls es nur mit Addon geht, kann mir dann bitte jemand erklären was ich genau machen muss? Komme damit überhaupt nicht klar.

Bin echt am verzweifeln, kann doch nicht so schwer sein, ein simples Skript laufen zu lassen. Als Info hier noch das Skript:

#!C:/Programme/xampp/perl/bin/perl.exe

#Haltbarkeit eines Users in Minuten
my $hold=10 ;

#Bild => 0 / Text (per SSI) => 1
my $output=1 ;

#Hintergrund => Weiss=0 / Schwarz=1 (wenn Output=>Bild)
my $invers=0 ;



###########################################################################
# Programmablauf (ab hier nichts mehr ändern)
###########################################################################


###
#Ermittlung des Scriptnamens und Wechsel in das Verzeichnis

$0 =~ /^(.*)[\/\\].*/ && chdir ($1) ;


###
#Datei schreiben

if ($ENV{'REMOTE_ADDR'}) {

open(DAT,"> ./data/$ENV{'REMOTE_ADDR'}") ;
close(DAT) ;
}


###
#IPs zählen/löschen

my $count=0 ;

opendir (SDATA, "./data");
my @ips = grep(/^\d+\./,readdir(SDATA));
closedir (SDATA);

foreach my $ip (@ips) {

if ( -M "./data/$ip" > ($hold/1440) ) {
unlink ("./data/$ip") ;
} else {
$count++ ;
}
}



###########################################################################
# Ausgabe
###########################################################################

if ($output==1) {

###
#Ausgabe :: Text

print "Content-type: text/html\n\n" . $count ;


} else {

###
#Bild generieren

my ($background,@digits,@bytes) ;

if ($invers==1){

$background="0xff,";
@digits=("c39999999999999999c3","cfc7cfcfcfcfcfcfcfc7","c3999f9fcfe7f3f9f981",
"c3999f9fc79f9f9f99c3","cfcfc7c7cbcbcd81cf87","81f9f9f9c19f9f9f99c3",
"c7f3f9f9c199999999c3","81999f9fcfcfe7e7f3f3","c3999999c399999999c3",
"c399999999839f9fcfe3") ;

} else {

$background="0x00,";
@digits=("3c66666666666666663c",
"30383030303030303030","3c66606030180c06067e","3c66606038606060663c",
"303038383434327e3078","7e0606063e606060663c","380c06063e666666663c",
"7e666060303018180c0c","3c6666663c666666663c","3c666666667c6060301c") ;
}

for my $z (0..9) {
for ( split(//,sprintf("%03d",$count)) ) {
push(@bytes,"0x".substr($digits[$_],$z*2,2).",") ;
}
}


###
#Ausgabe :: Bild

print "Content-type: image/x-xbitmap\n\n" ;
print "#define count_width 24\n#define count_height 24\n" ;
print "static char count_bits[] = {\n","$background"x21,@bytes,"$background"x21,"}" ;
}



###########################################################################
# ENDE
###########################################################################
Syraxis
 
Posts: 3
Joined: 04. April 2007 19:06

Postby Wiedmann » 04. April 2007 19:29

<img src="C:/Programme/xampp/cgi-bin/usercounter.cgi" border=0 width=24 height=24 align=absmiddle> User online

Der Pfad in "src" sollte natürlich was sein, auf das dein Browser, über den Webserver, zugreifen kann:
Code: Select all
<img src="/cgi-bin/usercounter.cgi" alt="Counter" border="0" width="24" height="24" align="absmiddle"> User online

siehe:
http://de.selfhtml.org/html/grafiken/ei ... m#referenz

(Hast du im error.log den Fehler 404 nicht gesehen?)
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Syraxis » 04. April 2007 19:42

Auch mit deiner Zeile bekomme ich leider nichts angezeigt. Im Errorlog steht nun folgendes:

[error] [client 127.0.0.1] script not found or unable to stat: C:/Programme/xampp/htdocs/Projekt/usercounter.cgi, referer: http://127.0.0.1/projekt/


Sorry kenne mich damit sehr schlecht aus.
Syraxis
 
Posts: 3
Joined: 04. April 2007 19:06

Postby Wiedmann » 04. April 2007 19:53

Also mit meiner Zeile kann es diese Fehlermeldung nicht geben.

(ausser du hättest etwas sehr seltsames in der "httpd.conf" geändert)
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Syraxis » 04. April 2007 20:17

Geändert habe ich in der httpd.conf nichts, KA woran es liegt, dass es nicht funktioniert...
Syraxis
 
Posts: 3
Joined: 04. April 2007 19:06


Return to Perl

Who is online

Users browsing this forum: No registered users and 17 guests