Also ich habe ein programm geschrieben und sobald man auf einen link klickt sollte erst das skript starten aber da die variable schon anfangs deklariert wird ist eine if abfrage unsinn und anders weiss ich es nicht hier ein kleiner codeschnipsel zur verständlichkeit
BEISPIEL EINS:
use CGI;
my $variable = new CGI;
my $ausgabe = $cgi->param("ausgabe");
print '<input type=submit name=ausgabe>';
Jetzt sollte geprüft werden ob submit angeklickt wurde wenn ja dann erst das skript starten wenn nein dann NICHTS ausgeben wie mache ich das?
BEISPIEL ZWEI:
use CGI;
my $variable = new CGI;
my $ausgabe = $cgi->param("ausgabe");
print '<input type=button name=ausgabe>';Das klappt auch nicht????
Wie kann ich das machen???
Ein Script besteht bei mir aus verschiedenen Schritten
Initialisierung
Daten einlesen und validieren
Aufgrund der Daten entscheiden, welche der folgenden Subfunktionen ausgeführt wird.
Das ist ein ganz kurzer aber wichtiger Programm-Abschnitt
Abgeschlossen durch eine Aufräum-Aktion
Dann folgen die langen Listen von Subroutinen.
z.B.
Formularausgabe
Aufgabe 1
Aufgabe 2
------------------
In deinem Beispiel geht es darum, dass du ein Formular nur dann bereitstellst, wenn die Bedingungen stimmen.
Wenn durch Submit ein param=wert übertragen wird, welchen du mit einer Bestimmten Aktion assoziieren kannst, dann kannst du auf dieser Grundlage eine Subroutine ausführen.
Ich gebe Formularen meist ein hidden Feld mit, dessen parameter und wert mir sagt, welche Funktion erwünscht ist.
<input type=hidden name=task value=memberlist>
Es kommt dann am server an
task=memberlist
( oder im Fall des CGI Moduls
my $user{task} = $cgi->param("task");
)
Und ich weiss dann, dass die anderen Angaben in diesem Formular dazu dienen, eine Mitgliederliste anzuzeigen nach bestimmten Filterkriterien (z.B.)
In der oben genannten Weiche habe ich:
if( $user{task} = memberlist ){ memberlist(); }
gehe zur Routine memberlist
(%user ist bei mir der hash, der alle Userdaten und die Bereinigeten Userinputs enthält.)
Es gibt viele Wege.
mfg Beat