Hallo Hubert,

Wunderbar - das kann ich gut nachvollziehen - ich meinte das mit der
Variante B.

Allerdings ist die zentrale Frage:

>>Tja und beim erfolgreichen Speichern (oder was immer Du vorhast damit)
wird ein Redirect auf eine neue Seite gemacht.  Deshalb aufpassen dass
die Struktur der Seite passt:  Aller Code oben; das erste <html> f�ngt
fr�hestens nach der letzten Code an, denn beim Redirect darf nix an den
Client ausgegeben werden. Statisches HTML und das F�llen der
Formularfelder dann weiter unten in der Seite.<<<

Aber wie stelle ich denn sicher, dass nach dem Redirect die Daten auch
in der neuen Datei vorhanden sind?

Ich habe da nun:

If Request.Form("Absenden") <> "" Then
        cVorname = Request.Form("Vorname")
        cNachname = Request.Form("Nachname")
        cEmail = Request.Form("Email")
        If EingabeCheck(cVorname) AND EingabeCheck(cNachname) AND
EingabeCheck(cEmail) Then
                Response.Redirect("newsletter1.asp") 
        End If
End If

Das Problem ist nun aber, dass ich in newsletter1.asp die drei Variablen
nicht habe, da sie ja nicht vom Form �bergeben wurden. Und per URL (also
newsletter1.asp?Vorname=<vorname> usw.) will ich die Daten nat�rlich
nicht weitergeben.

Beste Gr��e
Matthias


-----Urspr�ngliche Nachricht-----
Von: Hubert Daubmeier [mailto:hubertd@;neusob.de] 
Gesendet: Montag, 28. Oktober 2002 01:31
An: ASP Diskussionsliste fuer Anfaenger
Betreff: [aspdebeginners] RE: Eingabencheck und weiter



So w�rde ich das l�sen.  Schaun wir uns zuerst den zeitlichen Ablauf an

1: Leeres Formular anzeigen
2: Fehler bei der Eingabe produzieren
3: Formular mit vorhandenen Eingaben anzeigen

Wenn Du nun das Formular und den Formularhandler (den Code) in die
gleiche Datei packst, kannst Du folgendes machen

Der Submit-Button hat einen Namen und einen Wert.  

<input type="submit" name="action" value="abschicken">

Den abfragen etwa mit

If request.form("action") = "abschicken" then
  '  code f�r Handler

Hier k�me dann zun�chst die Validierung hin.  L�uft die auf einen Fehler
f�llst Du einen Satz Variablen  (hier mal zur Unterscheidung meine
private Namenskonvention sXXX sind String [Script] variablen.  Mit
frmXXX kennzeichne ich Formularfelder)

sVorname = Request.Form("frmVorname")
sNachname = Request.Form("frmNachname")
sFehler = "<font color=""red"">Bitte besser machen</font>"


Und die werden hinterher in das Formular gef�llt.  Etwa so

<input type="text" name="frmVorname" value="<%=sVorname%>">

Wenn wir jetzt zur�ckgehen auf den Schritt 1 ganz oben, dann wissen wir
ja dass das Formular beim ersten Aufruf noch keine Daten gepostet bekam,
folglich keine Variablen gef�llt wurden und damit auch die Felder nicht
vorbelegt sind. Und genau das wollten wir ja haben: ein [nicht zwei]
Formular, das selbst intelligent genug ist einmal leere Felder und
einmal vorbelegte Felder anzuzeigen. 

Gleiches gilt �brigens f�r die Ausgabe einer Fehlermeldung.  Die kannst
Du ja an passender Stelle mit <%=sFehler%> einsetzen. Beim ersten Aufruf
der Seite ist sie leer, sprich es wird nix ausgegeben. So wollen wir das
ja. 


Tja und beim erfolgreichen Speichern (oder was immer Du vorhast damit)
wird ein Redirect auf eine neue Seite gemacht.  Deshalb aufpassen dass
die Struktur der Seite passt:  Aller Code oben; das erste <html> f�ngt
fr�hestens nach der letzten Code an, denn beim Redirect darf nix an den
Client ausgegeben werden. Statisches HTML und das F�llen der
Formularfelder dann weiter unten in der Seite.  


Hoffentlich war das jetzt nicht zu lang. Um es k�rzer zu schreiben ist
schon ein bischen sp�t. 



-- 

Viele Gr��e
Hubert Daubmeier 






-----Original Message-----
From: Matthias Copray [mailto:MCopray@;gimas.net] 
Sent: Sunday, October 27, 2002 8:30 PM
To: ASP Diskussionsliste fuer Anfaenger
Subject: [aspdebeginners] Eingabencheck und weiter


Hi all,

Ich �berlege, wie ich zuk�nftig wirkungsvoll Eingaben checke und
verarbeite. Dabei m�chte ich die Eingaben zun�chst hinsichtlich von
regul�ren Ausdr�cken checken, ggfs. dem User eine Meldung geben, seine
Eingabe zu �ndern, oder aber die Eingaben weiter verarbeiten.

Dabei m�chte ich den Check per ASP und nicht JavaScript durchf�hren
(damit der User es nicht durch Ausschalten von Script umgeht) und ich
m�chte den User nat�rlich nicht zwingen, alle seine Eingaben nochmal
machen zu m�ssen, wenn etwas nicht stimmt, also er soll dann nicht auf
ein leeres Formular kommen.

Wie macht man das geschickt? 


Variante A:

 1. Datei1.ASP mit dem Formular nimmt die Daten auf.

 2. Datei2.ASP wertet die �bernommenen Daten mit RegExp aus und gibt
ggfs. eine Fehlermeldung aus (oder verarbeitet sie weiter). Aber wie
komme ich dann wieder auf Datei1.ASP zur�ck - und zeige das Formular
erneut mit den vormals eingegebenen Daten?


Variante B:

 1. Datei1.ASP mit dem Formular nimmt die Daten auf. 

 2. Bei der action bleibt das Formular in der eigenen Datei und wertet
die Daten aus: Wenn ein Fehler gefunden wird, kann man die gleiche Datei
nochmal mit einer zus�tzlichen Info ausgeben und auch die Daten im
Formular erhalten. Aber wie gebe ich dann die Daten weiter an eine
andere Datei - f�r den Fall, dass die Daten okay sind? Ich mag sie nicht
im URL-String zeigen.


Denke ich zu kompliziert und gibt es vielleicht einen einfacheren
Ansatz?

Beste Gr��e
Matthias


| Oft Gefragtes: http://www.aspgerman.com/aspgerman/faq/
| [aspdebeginners] als [EMAIL PROTECTED] subscribed
| http://www.aspgerman.com/archiv/aspdebeginners/ = Listenarchiv Sie 
| knnen sich unter folgender URL an- und abmelden: 
| http://www.aspgerman.com/aspgerman/listen/anmelden/aspdebeginners.asp


| Oft Gefragtes: http://www.aspgerman.com/aspgerman/faq/
| [aspdebeginners] als [EMAIL PROTECTED] subscribed
| http://www.aspgerman.com/archiv/aspdebeginners/ = Listenarchiv
| Sie knnen sich unter folgender URL an- und abmelden:
| http://www.aspgerman.com/aspgerman/listen/anmelden/aspdebeginners.asp


| Oft Gefragtes: http://www.aspgerman.com/aspgerman/faq/
| [aspdebeginners] als [email protected] subscribed
| http://www.aspgerman.com/archiv/aspdebeginners/ = Listenarchiv
| Sie knnen sich unter folgender URL an- und abmelden:
| http://www.aspgerman.com/aspgerman/listen/anmelden/aspdebeginners.asp

Antwort per Email an