Har ett forumlär som skickas till databasen. Kör sedan Där du tömmer formulädata för inmatning till databasen töm då också ut formulärdata för det du vill visa i ett sessionsobjekt. hmm.. det där får jag inte att fungera?!? Byr ut Fornamn till ID? Varför använda ReDirect. Den kille som implementerande denna funktion på Microsoft borde skämas. Man kan göra en ReDirect i ASP utan att använda ReDirect metoden. Eftersom det en ReDirect gör är att skicka ett svar med http protokollet till klienten där den sägera att sidan är temporärt flyttad. Bekfäftelse på nästa sida?
<code>Response.Redirect("thanx.asp")</code>
På thanx.asp vill jag visa en bekräftelse på EN uppgift som matades in med formuläret.
Hur gör jag?Sv: Bekfäftelse på nästa sida?
Session("Fornamn") = Request.Form("Fornamn")
På sidan thanx.asp tex,
Tack för ditt mail <%=Session(Fornamn")%>
Session.Abandon()Sv: Bekfäftelse på nästa sida?
Varje medlem får ett nummer. Det numret är lika med id:et i databasen = det jag ska visa på tack-sidan. Nån hjälp? :)Sv: Bekfäftelse på nästa sida?
Session("Fornamn") = Request.Form("Fornamn")
till
Session("ID") = Request.Form("ID")
Om ditt form innehåller fältet ID som i sin tur innehåller användarens id
Du kan ju lägga det som ett hidden field, eller redan vid inloggningen sätta:
Session("ID") = användarens IDSv: Bekfäftelse på nästa sida?
Om ni skriver en sida vilket använder redirect bara för att köra koden som sparar i databasen sedan går till en annan sida ser jag som ReDirect missbrukare. Borde öppnas behandlingshem för er.
Gör mig arg att se hur folk missbrukar http protokolet på detta sätt. Riktar mig till alla inte bar er i detta inlägg.
Jag tycker att man istället borde göra så här:
<code>
<%@ Language=VBScript %><%
Option Explicit
'**
'* Steg för sidan
'**
'Steg 1: Visa formulär för använaren
Const Step1 = "1"
'Steg 2: Kontroll och bekräftelse
' Om Data är ogiltligt visa steg 1
Const Step2 = "2"
'Steg 3: Spara och visa
' Om Data är ogiltligt visa steg 1
Const Step3 = "3"
'**
'* Generic functions
'**
Function ValidateEMail(Value)
Dim re
Set re = New RegExp
re.IgnoreCase = True
re.Pattern = "^[a-z._-]+\@([a-z]+[a-z._-]*\.)+[a-z]{2,4}$"
ValidateEMail = re.Test(Value)
End Function
'**
'* HTML block
'**
Sub WriteHead(Title)
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//SE" "http://www.w3.org/TR/REC-html40/strict.dtd">
<HTML>
<HEAD>
<TITLE><%=Server.HTMLEncode(Title)%></TITLE>
<STYLE type="text/css" media="print">
@page
{
Page size: landscape
}
</STYLE>
<SCRIPT>
</SCRIPT>
</HEAD>
<BODY>
<%
End Sub
Sub WriteForm(FirstName, LastName, EMail)
%>
<H3>Registration</H3>
<FORM action="" method="POST">
<INPUT type="hidden" name="action" value="<%=Step2%>">
<B>Förnamn:</B> <INPUT type="text" name="firstname" value="<%=Server.HTMLEncode(FirstName)%>"><BR>
<B>Efternamn:</B> <INPUT type="text" name="lastname" value="<%=Server.HTMLEncode(LastName)%>"><BR>
<B>E-post:</B> <INPUT type="text" name="email" value="<%=Server.HTMLEncode(EMail)%>"><BR>
<INPUT type="submit" value="Bekräfta"><BR>
</FORM>
<%
End Sub
Sub WriteConfirm(FirstName, LastName, EMail)
%>
<H3>Bekräfta registration</H3>
<P>
<B>Förnamn:</B> <%=Server.HTMLEncode(FirstName)%><BR>
<B>Efternamn:</B> <%=Server.HTMLEncode(LastName)%><BR>
<B>E-post:</B> <%=Server.HTMLEncode(EMail)%><BR>
</P>
<FORM action="" method="POST">
<INPUT type="hidden" name="action" value="<%=Step1%>">
<INPUT type="hidden" name="firstname" value="<%=Server.HTMLEncode(FirstName)%>">
<INPUT type="hidden" name="lastname" value="<%=Server.HTMLEncode(LastName)%>">
<INPUT type="hidden" name="email" value="<%=Server.HTMLEncode(EMail)%>">
<INPUT type="submit" value="Korrigera">
</FORM>
<FORM action="" method="POST">
<INPUT type="hidden" name="action" value="<%=Step3%>">
<INPUT type="hidden" name="firstname" value="<%=Server.HTMLEncode(FirstName)%>">
<INPUT type="hidden" name="lastname" value="<%=Server.HTMLEncode(LastName)%>">
<INPUT type="hidden" name="email" value="<%=Server.HTMLEncode(EMail)%>">
<INPUT type="submit" value="Spara">
</FORM>
<%
End Sub
Sub WriteStored(FirstName, LastName, EMail)
%>
<H3>Tack <%=Server.HTMLEncode(FirstName & " " & LastName)%> för att du registrerat dig hos oss.</H3>
<H4>Följande information har lagrats i vår databas:</H4>
<P>
<B>Förnamn:</B> <%=Server.HTMLEncode(FirstName)%><BR>
<B>Efternamn:</B> <%=Server.HTMLEncode(LastName)%><BR>
<B>E-post:</B> <%=Server.HTMLEncode(EMail)%><BR>
</P>
Till huvudsidan
<%
End Sub
Sub WriteFoot()
%>
</BODY>
</HTML>
<%
End Sub
'**
'* Kod som exetuerar sidan
'**
Dim strFirstName
Dim strLastName
Dim strEMail
Dim re
Dim strAction
Dim strErrMessage
Response.Buffer = True
'**
'* Kontroller/validera information som postats till sidan
'**
If Len(Request.Form("action")) Then
strAction = Trim(Request.Form("action"))
strFirstName = Trim(Request.Form("firstname"))
strLastName = Trim(Request.Form("lastname"))
strEMail = Trim(Request.Form("email"))
'**
'* Kontroller förnamnet
'**
If Len(strFirstName) = 0 Then
strAction = Step1
strErrMessage = strErrMessage & "Var vänlig att fyll i ditt förnamn!<BR>" & vbCrLf
End If
'**
'* Kontroller efternamnet
'**
If Len(strLastName) = 0 Then
strAction = Step1
strErrMessage = strErrMessage & "Var vänlig att fyll i ditt efternamn!<BR>" & vbCrLf
End If
'**
'* Kontroller email
'**
If Len(strEMail) = 0 Then
strAction = Step1
strErrMessage = strErrMessage & "Var vänlig att fyll i din epost adress!<BR>" & vbCrLf
ElseIf Not ValidateEMail(strEMail) Then
strAction = Step1
strErrMessage = strErrMessage & "Du har inte angivit en giltlig epost adress!<BR>" & vbCrLf
End If
'Eventuellt kontrollera om det finns en post i databasen med samma epost eller för- och efternamn.
'Osv...
Select Case strAction
Case Step2
WriteHead "My Site: Bekräfta din registreration " & strFirstName & " " & strLastName
WriteConfirm strFirstName, strLastName, strEMail
WriteFoot
Case Step3
'Lägg in kod som sparar posten i databasen
'Osv...
WriteHead "My Site: Tack för att du registrerat dig " & strFirstName & " " & strLastName
WriteStored strFirstName, strLastName, strEMail
WriteFoot
Case Else
WriteHead "My Site: Var vänlig kompletera din registrering"
WriteForm strFirstName, strLastName, strEMail
Response.Write "<P>" & strErrMessage & "</P>"
WriteFoot
End Select
Else
WriteHead "My Site: Välkommen att registrera dig"
WriteForm strFirstName, strLastName, strEMail
WriteFoot
End If
%>
</code>