Danke, Frank, für die PROMPTE Antwort!
hi!
$eingabe="####"
Was soll das? Rausschmeißen.
-----> War Übrigbleibsel von langem Debuggen.
if ($ENV{REQUEST_METHOD} eq "GET") {$eingabe=$ENV{QUERY_STRING};}
else {read(STDIN,$eingabe,$ENV{CONTENT_LENGTH});}Sehr unschön, das so zu machen. Besser ist, du verwendest das Modul
CGI, das normalerweise auch bei Schlund verfügbar sein müsste. Bsp.:
use CGI;
$wert1 = CGI::param('wert1');
$wert2 = CGI::param('wert2');
-------------> Gebongt, aber ich kenne halt PERL nicht, habe nie von Modulen wie "use CGI" gehört
(ist das sowas wie PASCAL-Use Unit?)
Die Hotline von Schlund ist da wenig hilfreich und hat Info über installierte Versionen,
Modulen usw. abgelehnt. Die Methode mit "if...else..." habe ich aus einer Demo abgekupfert.
Da stand nix von einem CGI-Modul
Das funktioniert sowohl mit POST als auch mit GET. Verwendungsweise
sollte klar sein.Weiterhin solltest du überprüfen, ob die wichtigen Variablen gefüllt
sind oder nicht, und evtl. eine Fehlerseite auswerfen, die erneut
ein Forumular zum Eingeben der Daten enthält.(ich weiss z.b. nicht, ob $ENV{mit tüttelchen} oder ohne
tüttelchen, nirgendswo beschrieben, im Internet kursieren beide
Versionen als Demo-Skripts)Beides ist möglich. Ohne Anführungszeichen, mit ' oder mit ". Die
Anführungszeichen wegzulassen, ist erlaubt, wenn es sich um einen
gültigen Perl-Bezeichner handelt und sich nicht mit einer der Perl-
Funktionen überschneidet. '-Zeichen verwendet man normalerweise, um
sicherzugehen. "-Zeichen braucht man an der Stelle nur, um Variablen
interpolieren zu können.
-------------------> Danke! Genausowas brauche ich.....habe in keinen Demo's und
in keinem Zeitschriften-Heftl zu Perl und keinem Buch-Anhang eine
saubere Definition der Syntax gesehen, nur immer die lakonische Anweisung
"Perl schreibt man, wie einem der Schnabel gewachsen ist"
while ($element=shift(daten)) { ... }
Nicht gerade, der gebräuchlichste Weg, eine Schleife durchzugehen,
außerdem fehlt vor "daten" ein @-Zeichen. Richtiger wäre:
-----------> In meinem Script steht das "@".... war in der Mail irgendwie verschüttgegangen...sorry.
Zu "while(...)": ebenfalls abgekupfert. Ich weiß genausowenig was "shift(daten)" bedeutet
wie was "@daten" bedeutet.
foreach $element (@daten)
{
# verarbeite $element
}Oder kürzer:
for (@daten)
{
# aktuelles Element steht nun in $_
-----------------> Für mich als C-Programmierer ist "$_" so mit das kryptischste in Perl überhaupt.
}
????? WIE KANN MAN EIN GET PRODUZIERN, OBWOHL DIE FORM EIN POST
VERLANGT?????Direkt aufrufen zum Beispiel.
-------------> Das wußte ich bereits....Aber welcher Kunde tippt schon brav die URL auf eine
".pl-Datei" hin ins Adressfeld ein, statt den ABSCHICK-Knopf zu drücken?.....
Diese Fehlerquelle haben wir als zu exotisch verworfen.
Oder nach dem POST die Seite bookmarken
und später zurückkommen. etc.
------------------->
----------------->
-------------> Das hier ist der Knüller.....auf die Idee, eine Rückantwort des Servers zu bookmarken
muß man erstmal kommen, und die Regelung, daß die Rückantwort die gleiche URL
bekommt wie der Perlscript (anstelle von "http://www...../temp/vorläufig/irgendeinenummer.html")
selber, ist auch nicht ganz so offensichtlich.
Ich habs sofort ausprobiert....Du hast Recht....Jetzt kann ich endlich Gegenmaßnahmen treffen!
(Ich will nicht verschweigen, daß ich, meiner Meinung nach, das
Archiv erstmal gewissenhaft abgesucht habe, aber nichts zu diesem
Thema gefunden habe!)Suche zb. nach "use CGI".
bye, Frank!
Nochmal besten Dank!