title image


Smiley Re: Formularfeldprüfung
Hallo Simone,



kann leider erst jetzt antworten.



>Es ist mir klar, dass es eigentlich nicht nötig ist mit dem back-Link. Aber auch hier

>wieder: Unsere lieben Dozenten in der Schule möchten es eben gerne mit einem back-Link *s*

Das macht die ganze Sache deutlich schwieriger. Dabei gibt es 2 grundlegende Probleme:

1. Das Zwischenspeichern

2. Die Ausgabe des eingetragenen Textes



1. Zwischenspeichern.

Ein Problem, auf das man oft trifft. Dabei wird eine Internet-Seite entweder im Browser oder z.B. im Proxy-Server zwischengespeichert. Ruft man nun die Seite auf, kann es durchaus vorkommen, daß die Seite nicht vom eigentlichen Internet-Server abgerufen, sondern die vom Browser/Proxy-Server gespeicherte Seite wird dargestellt.



Warum ist dies hier ein Problem? Es gibt Browser, bei denen gibt es überhaupt kein Caching (also das Zwischenspeichern). Ruft man nun die Seite auf, so kann es z.B. beim IE vorkommen, daß die zwischengespeicheicherte Seite inkl. der vom Benutzer angegebenen Daten angezeigt wird. Genauso kann es vorkommen, daß die Seite vom Server direkt abgerufen wird, ohne die angegebene Daten. Und das kann den Benutzer ärgern. Deshalb ist es eigentlich besser, die Fehlermeldungen direkt über dem Kontakt-Formular darzustellen, kannst dies mal Deinem Dozent mitteilen. Das ganze ist recht unpracktisch.



<a href="javascript:history.back()">BackLink</a>

Dieser Anweisung ist also keine 100%ige Lösung, und damit sind wir beim nächsten Problem.





2. Die Ausgabe des eingetragenen Textes

Hier kann ich nur eine grobe Beschreibung geben, event. solltest Du Deinen Dozenten fragen, ob nicht davon ausgegangen werden kann, daß ein Caching stattfindet, und somit auf den nachfolgenden Aufwand verzichtet werden kann.



Nun geht es darum, Daten über 2 Seiten irgendwo zwischenzuspeichern. Hier sehe ich mind. 2 praktikable Möglichkeiten:

1. Per Session, einfach die Daten in das Session-Cookie schreiben (hier event. den Dozenten fragen, ob Session-Cookies akzeptabel sind). Wie dies geht:

In Session-Cookie schreiben:

Session("Vorname") = "Otto"

Aus Session-Cookie lesen

Vorname = Session("Vorname")

Mehr Infos hierzu (inkl. Vor-/Nachteile & mehr):

http://www.asphelper.de/ASPKurs/A200108.asp



2. Per Formular:

Du schreibst sämtliche Daten in Hidden-Felder in ein Form-Tag. Und der Backlink ist dann ein Submit-Button (eventuell als Bild?). Vielleicht sogar am einfachsten? Auf jeden Fall empfehlenswert!



Wie könnte ganz grob die Sache mit dem Formular aussehen:

Wie dies mit der Prüfung usw. geht, solltest Du ja wissen, ansonsten von meinem Beispiel auslesen. Wenn der Benuter das Formular absendet, wird dies geprüft, und dann ggf. der Backlink inkl. dem Formular dargestellt. Etwa so:



<% @ Language="VBScript"   LCID = 1031 %><%   Option Explicit   Response.Buffer = true   Session.LCID = 1031   Server.ScriptTimeout = 20Public Schritt, Vorname, NachnameSchritt = Request("Schritt")Vorname = Request("Vorname")Nachname = Request("Nachname")If len(Schritt) = 0 Then  'Erster Aufruf der Kontaktseite, oder  'Formular aufgrund vom Backlink darstellen  Call FormularElse  'Daten prüfen, alles ok?  If PruefDaten Then    'Daten sind ok, in DB schreiben    Call Eintrag()  Else    'Daten nicht ok, Backlink darstellen    Call BackLink()  End IfEnd If'Normales FormularPublic Sub Formular()  %>  <form action="Test.asp" method="post">    Vorname: <input type="text" id="Vorname" name="Vorname" value="<% = Vorname %>"><br>    Nachname: <input type="text" id="Nachname" name="Nachname" value="<% = Nachname %>"><br>    <input type="hidden" id="Schritt" name="Schritt" value="2">    <input type="submit" id="Submit1" value="los">  </form>  <%End Sub'BackLinkPublic Sub BackLink()  %>  <form action="Test.asp" method="post">    <input type="hidden" id="Vorname" name="Vorname" value="<% = Vorname %>">    <input type="hidden" id="Nachname" name="Nachname" value="<% = Nachname %>">    <br><input type="submit" id="Submit1" value="Der Backlink">  </form>  <%End SubPublic Function PruefDaten()  Dim KeinFehler  KeinFehler = true    If len(Vorname) = 0 Then    KeinFehler = false  End if  If len(Nachname) = 0 Then    KeinFehler = false  End if    PruefDaten = KeinFehlerEnd FunctionPublic Sub Eintrag()  'Hier DB-Eintrag und event. der Mail-Versand  Response.Write("Eintrag!")End Sub%>



So, das wars. Das war aber viel an Text! Aber ich hoffe, ich konnte weiterhelfen, wünsch noch einen schönen Tag!

MfG & CU & Thänx weri Matsch
Klaus Keller

http://www.asphelper.de - aspkurs, Fehlercodes, Tipps & Skripts, VBScript-Referenz, Forum

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: