ASP-Vorlesung 2: Lesen von über Formulare gesendeten Daten
Autor:Eve Cole
Aktualisierungszeit:2009-05-30 19:58:19
Das Wichtigste beim Erlernen von ASP ist die Beherrschung der sechs integrierten Objekte von ASP. Tatsächlich haben wir in der vorherigen Vorlesung bereits etwas über das Response-Objekt (wirklich? Haben Sie einen Fehler gemacht!) und die am häufigsten verwendeten Write-Methoden, Redirect-Methoden und Expires-Eigenschaften im Response-Objekt gelernt. Wenn Sie die Konzepte von Objekten, Methoden, Eigenschaften, Sammlungen und Ereignissen sehen (ich kenne keines davon!), sind Sie schlau und kümmern sich nicht um diese Konzepte, wenn Sie noch nie zuvor mit ihnen in Kontakt gekommen sind. Ich bin der Meinung, dass es nur der Anfang ist. Der Schlüssel liegt im Kopieren. Lassen Sie uns das Request-Objekt anhand von Beispielen weiter erlernen. Um unser Verständnis zu vertiefen, führen Sie bitte diese Programme aus, um die Ausgabeergebnisse anzuzeigen.
1. Verwenden Sie Request.ServerVariables, um Umgebungsvariablen abzurufen. Dieser Teil ist sehr einfach, aber der erhaltene Inhalt ist sehr wichtig. Bitte sehen Sie sich das folgende Beispiel an:
<%@ Language=VBScript %>
<HTML><KÖRPER>
<% 'wuf8.asp
Response.Write „Pfad zur Ausführung der ASP-Datei:“ &_
Request.ServerVariables("Script_Name") & "<Br>"
Response.Write „Gibt die Datenlänge des Inhalts zurück:“ &_
Request.ServerVariables("Content_Length") & "<Br>"
Response.Write „Gib die IP-Adresse des Kunden zurück:“ &_
Request.ServerVariables("Remote_Addr") & "<Br>"
Response.Write „Browsername:“ &_
Request.ServerVariables("HTTP_USER_AGENT") & "<Br>"
Response.Write „Kehren Sie zum tatsächlichen physischen Pfad der Homepage zurück: „ &_
Request.ServerVariables("APPL_PHYSICAL_PATH") & "<Br>"
%>
<table colspan=8 cellpadding=5 border=0>
<tr>
<td align=CENTER bgcolor="#800000" width="109"> <font style="ARIAL NARROW" color="#ffffff" size="2">Name der Umgebungsvariablen</font></td>
<td align=CENTER width=459 bgcolor="#800000"> <font style="ARIAL NARROW" color="#ffffff" size="2">Inhalt</font></td>
</tr>
<tr>
<td bgcolor="f7efde" align=CENTER> <font style="ARIAL NARROW" size="2">
Ergebnis1
</font></td>
<td bgcolor="f7efde" align=CENTER> <font style="ARIAL NARROW" size="2">
Ergebnis2
</font></td></tr>
</table>
</BODY></HTML>
Jetzt sollten Sie feststellen, wie einfach die Routine wuf2.asp aus der vorherigen Lektion ist!
Hinweis: Das HTML-Markup im letzten Teil dieses Programms dient lediglich der Vorbereitung für das folgende Beispiel. Seien Sie also nicht überrascht. Welche anderen Umgebungsvariablen gibt es also? Sie werden es herausfinden, indem Sie das folgende Beispiel ausführen (dieses Programm hat einige Codes gelöscht, zum besseren Verständnis laden Sie am besten das Quellprogramm von meiner Website herunter).
<%@ Language=VBScript %>
<% 'wuf9.asp
Option explizit
Dim Sv
%>
<HTML><KÖRPER>
<table colspan=8 cellpadding=5 border=0>
<tr>
<td align=CENTER bgcolor="#800000" width="109"> <font style="ARIAL NARROW" color="#ffffff" size="2">Name der Umgebungsvariablen</font></td>
<td align=CENTER width=459 bgcolor="#800000"> <font style="ARIAL NARROW" color="#ffffff" size="2">Ergebnisse</font></td>
</tr>
<%
für jeden SV in Request.ServerVariables
Response.Write „<tr>“
Response.Write „<td bgcolor='f7efde' align=CENTER> <font style='ARIAL NARROW' size='2'>"
Response.Write Sv
Response.Write „</font></td>“
Response.Write „<td bgcolor='f7efde' align=CENTER> <font style='ARIAL NARROW' size='2'>"
Response.Write Request.ServerVariables(Sv)
Response.Write „</font></td></tr>“
nächste
%>
</table>
</BODY></HTML>
Hier wird eine For...Each-Schleife verwendet, um alle Elemente in einer Sammlung aufzulisten. Wenn Sie die zweite Hälfte nicht verstehen, vergleichen Sie bitte wuf8.asp, werfen Sie einen Blick auf die laufenden Ergebnisse und verstehen Sie es sorgfältig (wie ist Ihre Einstellung?).
2. Übertragen Sie Daten über das Formular an den Server (dies kann auch so verstanden werden, wie der Server die vom Client gesendeten Daten liest).
Wenn Sie an einer Homepage gearbeitet haben, sollten Sie wissen, dass viele Homepages normalerweise Formularformulare verwenden, um Benutzern die Eingabe von Daten zu ermöglichen und diese dann über die Schaltfläche „Senden“ zu senden. Die „Methode“ im From-Formular hat zwei Hauptmethoden: POST und GET. Nach „Aktion“ wird normalerweise eine .cgi-, .pl- oder .asp-Datei angegeben. Was wir heute lernen werden, ist, wie man diese .asp schreibt Datei.
(1) Wenn Sie die POST-Methode zum Übertragen von Daten verwenden, verwenden Sie Request.Form, um die Daten zu lesen.
Bearbeiten Sie zunächst die folgende wuf10.htm-Datei, damit Benutzer Daten eingeben können:
<html>
<body bgcolor="#FFFFFF">
<form method="post" action="wuf11.asp">
Name: <input type="text" name="yourname"><br>
Geschlecht: <select name="gender">
<option>Männlich</option>
<option>Weiblich</option>
</select> <br>
Nachricht: <textarea name="message">Hallo!
Achten Sie auf die Verarbeitung von mehrzeiligem Text</textarea> <br>
Hobbys (halten Sie die Strg-Taste gedrückt, um mehrere auszuwählen):
<select name="hobby" multiple size="4">
<option>Computer</option>
<option>Einkaufen</option>
<option>Filme</option>
<option>Lesen</option>
</select> <br>
<input type="submit" name="Submit" value="Submit">
<input type="reset" name="Submit2" value="Reset">
</form>
</body>
</html>
Schreiben Sie dann eine Datei wuf11.asp, die wuf10.htm zum Sammeln von Daten verwenden muss:
<%@ Language=VBScript %>
<% 'wuf11.asp
Option explizit
Response.Expires=0
Dimmen Sie StrName, StrGender, StrM, StrMsg
StrName = Trim(Request.Form("yourname")) 'Trim-Funktion wird verwendet, um führende und nachfolgende Leerzeichen zu entfernen
StrGender = Trim(Request.Form("gender"))
StrM = Trim(Request.Form("message"))
StrMsg = Ersetzen(StrM,vbcrlf,"<Br>" & vbcrlf)
' vbcrlf entspricht der Kombination aus Wagenrücklauf und Zeilenvorschub. Die Funktion der Funktion „Ersetzen“ besteht darin, vbcrlf in der Zeichenfolge StrM durch „<Br>“ und vbcrlf zu ersetzen (denken Sie bitte über die Verwendung dieses vbcrlf nach? Sie werden es verstehen, wenn Sie sich den HTML-Quellcode der Ausgabedatei ansehen.) Weitere Informationen finden Sie in der VBScript-Hilfe.
%>
<HTML><KÖRPER>
Name: <%= StrName%><Br><Br>
Geschlecht: <%= StrGender%><Br><Br>
Nachricht: <Br><Br>
<%= StrM%><Br><Br>
<%= StrMsg%><Br><Br>
Tatsächlich wird auch der Wert der Schaltfläche „Senden“ übergeben: <Br>
<%= Request.Form("Submit")%><Br><Br>
<% 'Verstehen Sie zunächst das oben Gesagte und sehen Sie sich dann bei Interesse an, wie Sie mehrere Optionen lesen können
Response.Write "Gesamtzahl der ausgewählten Hobbys:" & Request.Form("hobby").Count & "<Br>"
Dim ich
Für I = 1 bis Request.Form("hobby").Count
Response.Write Request.Form("hobby")(I) & "<Br>"
Nächste
%>
</BODY></HTML>
In diesem Beispiel verwenden wir zum besseren Verständnis zwei Programme. Sie können auch nur ein Programm verwenden. Wenn Sie interessiert sind, sehen Sie sich bitte die folgende Routine wuf12.asp an, die Ihnen hilft, Ihr Verständnis von Umgebungsvariablen zu vertiefen.
<%@ Language=VBScript %>
<% 'wuf12.asp
Option explizit
Response.Expires=0
Dimmen Sie StrName, StrGender, StrM, StrMsg
Wenn Request.ServerVariables("Content_Length") <> 0, dann
„Nach dem Absenden der Daten beträgt die Länge nicht 0. Führen Sie daher die folgende Anweisung aus, um das Ergebnis anzuzeigen.“
'Der folgende Teil ist tatsächlich aus wuf11.asp kopiert
StrName = Trim(Request.Form("IhrName"))
StrGender = Trim(Request.Form("gender"))
StrM = Trim(Request.Form("message"))
StrMsg = Ersetzen(StrM,vbcrlf,"<Br>" & vbcrlf)
%>
<HTML><KÖRPER>
Name: <%= StrName%><Br><Br>
Geschlecht: <%= StrGender%><Br><Br>
Nachricht: <Br><Br>
<%= StrM%><Br><Br>
<%= StrMsg%><Br><Br>
<%
Response.Write "Gesamtzahl der ausgewählten Hobbys:" & Request.Form("hobby").Count & "<Br>"
Dim ich
Für I = 1 bis Request.Form("hobby").Count
Response.Write Request.Form("hobby")(I) & "<Br>"
Nächste
%>
</BODY></HTML>
<%
Anders
„Wenn die Seite zum ersten Mal geladen wird, werden keine Daten übermittelt, sodass der vorherige Teil nicht ausgeführt wird, sondern von hier aus beginnt.“
'Aus diesem Grund gibt es zwei Paare von <HTML></HTML>
'Kopieren Sie einfach wuf10.htm unten.
'<form method="post" action="wuf11.asp"> wurde durch Umgebungsvariablen ersetzt, aber es ist genau das Gleiche
Response.Write "Sehen Sie sich die Ergebnisse an: " & Request.ServerVariables("Script_name") & "<Br>"
%>
<HTML><KÖRPER>
<form method="post" action="<%= Request.ServerVariables("Script_name")%>">
Name: <input type="text" name="yourname"><br>
Geschlecht: <select name="gender">
<option>Männlich</option>
<option>Weiblich</option>
</select> <br>
Nachricht: <textarea name="message">Hallo!
Achten Sie auf die Verarbeitung von mehrzeiligem Text</textarea> <br>
Hobbys (halten Sie die Strg-Taste gedrückt, um mehrere auszuwählen):
<select name="hobby" multiple size="4">
<option>Computer</option>
<option>Einkaufen</option>
<option>Filme</option>
<option>Lesen</option>
</select> <br>
<input type="submit" name="Submit" value="Submit">
<input type="reset" name="Submit2" value="Reset">
</form>
</BODY></HTML>
<%End If%>
(2) Wenn Sie die GET-Methode zum Übertragen von Daten verwenden, verwenden Sie Request.Querystring, um die Daten zu lesen.
Bearbeiten Sie zunächst die folgende wuf13.htm-Datei, damit Benutzer Daten eingeben können:
<html>
<body bgcolor="#FFFFFF">
<form method="get" action="wuf14.asp">
Englischer Name: <input type="text" name="Ename"> <br>
Chinesischer Name: <input type="text" name="Cname"><br>
Geschlecht: <select name="gender">
<option>Männlich</option>
<option>Weiblich</option>
</select> <br>
<input type="submit" name="Submit" value="Submit">
<input type="reset" name="Submit2" value="Reset">
</form>
</body>
</html>
Schreiben Sie dann eine Datei wuf14.asp, die wuf13.htm zum Sammeln von Daten verwenden muss:
<%@ Language=VBScript %>
<% 'wuf14.asp
Option explizit
Response.Expires=0
Dimmen Sie StrCname, StrEname, StrGender
StrEname = Trim(Request.QueryString("Ename")) 'Trim-Funktion wird verwendet, um führende und nachfolgende Leerzeichen zu entfernen
StrCname = Trim(Request.QueryString("Cname"))
StrGender = Trim(Request.QueryString("gender"))
%>
<HTML><KÖRPER>
Englischer Name: <%= StrEname%><Br><Br>
Chinesischer Name: <%= StrCname%><Br><Br>
Geschlecht: <%= StrGender%><Br><Br>
Schauen Sie sich die übermittelte Zeichenfolge an: <Br>
<%= Request.ServerVariables("Query_String")%>
</BODY></HTML>
Um dieses Programm besser zu verstehen, sollten Sie zunächst die Wirkung der Routine wuf13.htm im Browser ausprobieren und sich die Ausgabeergebnisse ansehen. Sie werden feststellen, dass Ihnen die lange Zeichenfolge in der Adressleiste bekannt vorkommt, genau wie when Suche auf Yahoo. Ähnliches gesehen. Zu diesem Zeitpunkt versuchen Sie, „http://localhost/wuf14.asp?Ename=Rose&Cname=李二&gender=female“ direkt in die Adressleiste einzugeben, und Sie erhalten das gleiche Ergebnis. Sie können es also so sehen: Das Ergebnis von wuf13.htm besteht darin, einen Link mit Parametern wie diesem zu erhalten. Request.QueryString liest alle Daten aus den zusätzlichen Parametern der http://-Adresse.
Tatsächlich wird beim Klicken auf die Schaltfläche „Senden“ die Abfragezeichenfolge (Eingabedaten) in Form von Parametern an die URL-Adresse angehängt (jeder Parameter wird durch „&“ getrennt), um den Zweck der Datenübertragung zu erreichen. Bitte beachten Sie gleichzeitig, dass die im Browser angezeigte Abfragezeichenfolge kein Chinesisch enthält, sondern nicht erkennbare verstümmelte Zeichen mit Prozentzeichen. Dies liegt daran, dass sie codiert ist. Schließlich können diese beiden Programme wie zuvor auch zu einem Programm zusammengeführt werden (Routine wuf15.asp, Sie müssen sie von meiner Website herunterladen).
Ein paar Anmerkungen:
1. Wenn Sie die POST-Methode zum Übermitteln von Daten verwenden, ist Request.ServerVariables("Content_Length")>0.
Wenn Sie die GET-Methode zum Übermitteln von Daten verwenden, dann Request.ServerVariables("Query_String") <> "".
2. Nachdem Sie das Prinzip verstanden haben, können Sie Request.Form und Request.QueryString in derselben ASP-Datei mischen.
3. Wenn ein Formular mehrere Schaltflächen enthält, wie ermitteln Sie dann, welche Schaltfläche der Benutzer gedrückt hat? Wenn Sie aufmerksam sind, werden Sie feststellen, dass es in der Routine wuf11.asp einen Satz gibt, der besagt, dass auch der Wert der Schaltfläche „Senden“ übertragen wird, und ein ähnlicher Wert ist in der in wuf13.htm generierten Abfragezeichenfolge zu finden. Bitte beachten Sie: Es wird nur der Wert der gedrückten Schaltfläche übermittelt, während der Wert der anderen Schaltflächen „“ ist. Dies ist die Grundlage für die Beurteilung („China Planning News“ InfoWeb-Website hat einen ähnlichen Artikel).