Daten an ein Formular übergeben II

Hallo
Ich hatte vor kurzem schon danach gefragt, wie man mit einem Link Daten an ein Formular übergeben kann.
So nun hab ich mir mal ein Script erstellt, das beim aufruf ein Formular ausgibt.
Dieses Script hab ich zusätzlich als txt file zur ansicht hochgeladen http://www.spidernetz.de/probe.txt
Die paar Programmzeilen hat mir ein Bekannter geschickt,

Nun wenn ich das Script normal aufrufe, wird das Formular erstellt.
Rufe ich das Script aber so auf
test.cgi?name=test
dann bekomme ich 500 Internal Server Error
Mein bekannter sagte mir, das wenn ich ?name=test an die URL anhänge, wird test im Formularfeld name eingetragen. Aber es geht nicht
Und mein Bekannter ist leider jetzt für eine Woche nicht erreichbar…

Vielleicht könnte mir hier mal jemand sagen wo der Fehler liegt
Wie gesagt, das Script läuft auf
http://www.gifdown.de/test.cgi
Und den text des Scriptes könnt Ihr Euch auf
http://www.spidernetz.de/probe.txt ansehen

hi,

Nun wenn ich das Script normal aufrufe, wird das Formular
erstellt.

aha.

Rufe ich das Script aber so auf
test.cgi?name=test dann bekomme ich 500 Internal Server Error

die rechte fuer das script und das verzeichnis in dem es liegt sind korrekt?

Mein bekannter sagte mir, das wenn ich ?name=test an die URL
anhänge, wird test im Formularfeld name eingetragen. Aber es
geht nicht

nee, du gibst auch keinen value-wert im feld name an… aber im feld mail machst du das ja. sehen wir es mal als beispiel an.
wo bekommst du deine variable $mail her? sollte das ein defaultwert sein?
also, mit php heisst die variable tatsaechlich so (naja, in deinem fall aber ‚$email‘ :smile:
das ganze ist aber ein perlscript. da heisst die variable $Getstring{‚email‘}
trag die mal als defaultwert ein. ob das ganze jetzt fuer den 500 verantwortlich ist, kann ich jetzt nicht sagen, koennte aber sein.

probier es mal aus.
ich rate dir auch, bei der url-variablen-sequenz ganz oben im script mal ein paar leerzeichen und zeilenumbrueche einzusetzen. is dann einfacher zu lesen :smile:

gruss, stefan

nochwas
in dem form-tag solltest du als action ‚test.cgi‘ angeben.
ich werde ausserdem das gefuehl nicht los, dass die sequenz oben fehler enthaelt. probier mal diese variante.

read(STDIN, $buffer, $ENV{'CONTENT\_LENGTH'});
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
 ($name, $value) = split(/=/, $pair);
 $value =~ tr/+/ /;
 $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
 $input{$name} = $value;
 }


    
    
    
    deine eingabevariablen heissen jetzt $input{$value}
    
    gruss

Hi,

wenn sich heute noch solche Skripte sehe, grausts mir immer.
Dieses hantieren mit $env öffnet Sicherheitslücken so groß wie ein Scheunentor, zumindest wenns nicht richtig gemacht wird.

Um die vom Browser kommenden Daten zu verarbeiten, gibts ein Perl-Modul welches diese Lücke schließt und eine sehr bequeme Verarbeitung zuläßt.

Im folgenden ein angepasster Code (getestet und funktioniert):

#!/usr/bin/perl
use CGI;
my $q=new CGI;
print $q-\>header;
print 
 Test
"

 Homepage URL:



 Homepage Name:



 Dein Name:



 Deine E-Mail:

KOPF

#Hier wird die Adresse eingefügt
print ' '."\n";

print 

 Wähle ein Passwort:



 Wiederhohle das Passwort:


 \