Mein lieber richard,
da hast du natürlich auch gewissermassen Recht, eigentlich steht es nicht zu eine solche Bewertung zu posten. Doch diese Art wird mittlerweile hoffähig in Hilfeforen, und dagegen möchte ich mich wehren.
Meine liebe Alexandra, was du uns hier beschreibst ist ein konzept einer ganzen Anwendung. Du kannst nicht erwarten, daß dir das jemand hier mal eben aus dem Ärmel scriptet. Fangen wir bescheiden an:
Da wäre erstmal das Eingabeformular:
<form action="http://www.Hier_kommt_die_Websiteadresse_hinein_die_erscheinen_soll_wenn_das_Formulat_abgeschickt_worden_ist.de&cmd=add" name="_baseportal_form0" method="post" enctype="multipart/form-data">
Meistens ist es auch die Seite, wo das Formular ist, später kannst du noch einen execute-text eingeben, z.B. Eintrag versendet.
Das '&cmd=add' habe ich bei Einträgen in die Datenbank standardmäßig dabei, ohne jemals ergründet zu haben, ob es wirklich notwendig ist.
Nun kommen wir zum Eintragsfeld:
<span>Notizen</span>
<textarea style="width:360px" name="Notizenx:=" cols="40" rows="4" ></textarea><br/>
Schau dir genau die Schreibweise hinter name="... an, Doppelpunkt und Gleichheitszeichen am Ende, natürlich in Gänsefüsschen. Der Name ist an den Datenbankfeldnamen angelehnt, ich bin jetzt davon ausgegangen, daß das Textfeld für Notizen in deiner Datenbank 'Notizen' heißt, aber damit sich da niemals etwas in die Quere kommen kann, hänge ich einfach ein x an den Namen. Jetzt noch der Senden und Reset-button:
<input type=submit class="button" value="Senden" name="submit">
<input type=reset class="button" value="Reset" name="reset">
</form>
Nun kommt die Programmierung, ich zeige den Eintrag erstmal als Neueintrag in deine Datenbank:
Die Programmierung fängt immer erst mit <perl> an und hört mit </perl> auf. Kommentare werden durch # gekennzeichnet und dann nicht vom Interpreter berücksichtigt.
#die Variable Maxtext bekommt den Wert 250, beachte, daß nach jeder Komandozeile ein ; gesetzt ist.
# d.h. die Variable $emsg kann gefüllt sein mit (z.B.) ...
$emsg.="Der Text ist zu lang! Bitte kürzen Sie ihn auf maximal $maxtext Zeichen.<br/>" if length($_put{Notizenx})>$maxtext;
# Die Bedingung if prüft mithilfe der Größer/Kleiner-Zeichen (<>) und dem perl.modul length die Anzahl der eingegebenen Zeichen und vergleicht sie mit dem Wert in $maxtext.
if($emsg eq "")
{
put ["Notizen","$Notizenx"], "dein_Datenbankname";
#wenn die Variable $emsg leer bleibt wird der Text aus dem Formularfeld Notizenx in die Datenbank dein_Datenbankname in das Feld Notizen eingetragen.
} else
{
out "<span>$emsg</span><br/>";
}
}
#ansonsten wird der Inhalt von $emsg auf der Seite ausgegeben, die du in <form action=...> eingegeben hast.
Beachte bitte die Klammerung. Es müssen immer genausoviele Klammern geschlossen werden, wie auch geöffnet wurden. Mit 'mod' statt 'put' kannst du Feldeinträge modifizieren, mit 'put' eben neue Datensätze schreiben. Wenn du bestehende Einträge in einem Datenbankfeld ergänzen möchtest, mußt du das Feld erst auslesen, also in eine Variable speichern und die Ergänzung dann dran hängen.
Jetzt solltest du dir erstmal eine Testsuite bauen, eine Test-Datenbank und eine Testseite. Die Datenbank muß eine textareafeld haben mit Namen Notizen. In die Seite, dein script, kopierst du diesen zusammengefassten Code und modifizierst den Datenbanknamen und die Formularadresse. Die Formularadresse ist der Seitenlink, er steht oben an der Seite (Aufruf:http://...).
<form action="http://www.Hier_kommt_die_Websiteadresse_hinein_die_erscheinen_soll_wenn_das_Formulat_abgeschickt_worden_ist.de&cmd=add" name="_baseportal_form0" method="post" enctype="multipart/form-data">
<span>Notizen</span>
<textarea style="width:360px" name="Notizenx:=" cols="40" rows="4" ></textarea><br/>
<input type=submit class="button" value="Senden" name="submit">
<input type=reset class="button" value="Reset" name="reset">
</form>
<perl>
$maxtext||=250;
#die Variable Maxtext bekommt den Wert 250, beachte, daß nach jeder Komandozeile ein ; gesetzt ist.
my $emsg="";
if(%_put)
{
$emsg.="Der Text ist zu lang! Bitte kürzen Sie ihn auf maximal $maxtext Zeichen.<br/>" if length($_put{Notizenx})>$maxtext;
if($emsg eq "")
{
put ["Notizen","$Notizenx"], "dein_Datenbankname";
} else
{
out "<span>$emsg</span><br/>";
}
}
</perl>
Wenn alles geklappt hat schaust du dir die Dokumentationsbeiträge zu put und mod an. Danach stellst du weitere Fragen und ignorierst komische Angebote mit einem Lächeln.