ASP Kuliah 2 : Membaca data yang dikirimkan melalui form
Penulis:Eve Cole
Waktu Pembaruan:2009-05-30 19:58:19
Hal terpenting untuk mempelajari ASP adalah menguasai enam objek bawaan ASP. Sebenarnya, pada kuliah sebelumnya, kita telah mempelajari tentang objek Response (benarkah? Apakah Anda melakukan kesalahan!), dan metode Write, metode Redirect, dan properti Expires yang paling umum digunakan di objek Response. Ketika Anda melihat konsep objek, metode, properti, koleksi, dan peristiwa (saya tidak tahu satu pun!), Jika Anda belum pernah mengenalnya sebelumnya, Anda pintar dan tidak peduli dengan konsep-konsep ini. Ketahui saja cara menggunakannya. Menurut saya, ini baru permulaan. Mari kita lanjutkan mempelajari objek Request melalui contoh. Untuk memperdalam pemahaman kita, silahkan jalankan program ini untuk melihat hasil outputnya.
1. Gunakan Request.ServerVariables untuk mendapatkan variabel lingkungan. Bagian ini sangat sederhana, tetapi konten yang diperoleh sangat penting. Silakan lihat contoh berikut:
<%@ Bahasa=VBScript %>
<HTML><BODI>
<% 'wuf8.asp
Response.Tulis "Jalur untuk menjalankan file ASP: " &_
Permintaan.ServerVariables("Nama_Script") & "<Br>"
Response.Tulis "Kembalikan panjang data konten:" &_
Permintaan.ServerVariables("Panjang_Konten") & "<Br>"
Response.Tulis "Kembalikan alamat IP pelanggan:" &_
Permintaan.ServerVariables("Remote_Addr") & "<Br>"
Respon.Tulis "Nama browser:" &_
Permintaan.ServerVariables("HTTP_USER_AGENT") & "<Br>"
Response.Write "Kembali ke jalur fisik sebenarnya dari laman beranda:" &_
Permintaan.ServerVariables("APPL_PHYSICAL_PATH") & "<Br>"
%>
<tabel colspan=8 cellpadding=5 batas=0>
<tr>
<td align=CENTER bgcolor="#800000" width="109"> <font style="ARIAL NARROW" color="#ffffff" size="2">Nama variabel lingkungan</font></td>
<td align=CENTER width=459 bgcolor="#800000"> <font style="ARIAL NARROW" color="#ffffff" size="2">Konten</font></td>
</tr>
<tr>
<td bgcolor="f7efde" align=CENTER> <font style="ARIAL SEMPIT" size="2">
hasil1
</font></td>
<td bgcolor="f7efde" align=CENTER> <font style="ARIAL SEMPIT" size="2">
hasil2
</font></td></tr>
</tabel>
</BODI></HTML>
Sekarang, Anda akan mengetahui betapa mudahnya rutinitas wuf2.asp pada kuliah sebelumnya!
Catatan: Markup HTML di bagian akhir program ini murni sebagai persiapan untuk contoh berikut, jadi jangan kaget. Jadi, variabel lingkungan apa lagi yang ada? Anda akan mengetahuinya dengan menjalankan contoh berikut (program ini telah menghapus beberapa kode, yang terbaik adalah mengunduh program sumber dari situs saya untuk memudahkan pemahaman).
<%@ Bahasa=VBScript %>
<% 'wuf9.asp
Opsi Eksplisit
Redupkan Sv
%>
<HTML><BODI>
<tabel colspan=8 cellpadding=5 batas=0>
<tr>
<td align=CENTER bgcolor="#800000" width="109"> <font style="ARIAL NARROW" color="#ffffff" size="2">Nama variabel lingkungan</font></td>
<td align=CENTER width=459 bgcolor="#800000"> <font style="ARIAL NARROW" color="#ffffff" size="2">Hasil</font></td>
</tr>
<%
untuk setiap Sv Dalam Permintaan.Variabel Server
Respon.Tulis "<tr>"
Respon.Tulis "<td bgcolor='f7efde' align=CENTER> <font style='ARIAL NARROW' size='2'>"
Tanggapan.Tulis Sv
Respon.Tulis "</font></td>"
Respon.Tulis "<td bgcolor='f7efde' align=CENTER> <font style='ARIAL NARROW' size='2'>"
Respons.Permintaan Tulis.Variabel Server(Sv)
Respon.Tulis "</font></td></tr>"
Berikutnya
%>
</tabel>
</BODI></HTML>
Perulangan For...Each digunakan di sini untuk mencantumkan semua elemen dalam koleksi. Jika Anda belum memahami bagian kedua, silakan bandingkan wuf8.asp, lihat hasil yang berjalan, dan pahami baik-baik (bagaimana sikap Anda?).
2. Mengirimkan data ke server melalui form (ini juga bisa dipahami sebagai bagaimana server membaca data yang dikirim oleh klien)
Jika Anda pernah mengerjakan halaman beranda, Anda harus tahu bahwa banyak halaman beranda biasanya menggunakan formulir Formulir untuk memungkinkan pengguna memasukkan data, dan kemudian mengirimkan data tersebut melalui tombol "kirim". "Metode" dalam formulir Dari memiliki dua metode utama: POST dan GET. Setelah "tindakan", file .cgi, .pl atau .asp biasanya ditentukan. Apa yang akan kita pelajari hari ini adalah cara menulis .asp ini mengajukan.
(1) Jika Anda menggunakan metode POST untuk mengirimkan data, gunakan Request.Form untuk membaca data.
Edit terlebih dahulu file wuf10.htm berikut agar pengguna dapat memasukkan data:
<html>
<tubuh bgcolor="#FFFFFF">
<formulir metode="post" action="wuf11.asp">
Nama: <input type="text" name="namaAnda"><br>
Jenis Kelamin: <pilih nama="gender">
<option>Laki-laki</option>
<option>Wanita</option>
</pilih> <br>
Pesan: <textarea name="message">Halo!
Perhatikan pengolahan teks multibaris</textarea> <br>
Hobi (tahan tombol Ctrl untuk memilih beberapa):
<pilih nama="hobi" beberapa ukuran="4">
<option>Komputer</option>
<option>Belanja</option>
<option>Film</option>
<option>Membaca</option>
</pilih> <br>
<input type="kirim" nama="Kirim" value="Kirim">
<input type="reset" name="Kirim2" value="Reset">
</bentuk>
</tubuh>
</html>
Kemudian tulis file wuf11.asp yang perlu digunakan wuf10.htm untuk mengumpulkan data:
<%@ Bahasa=VBScript %>
<% 'wuf11.asp
Opsi Eksplisit
Respon. Kedaluwarsa = 0
Redupkan StrName, StrGender, StrM, StrMsg
StrName = Trim(Request.Form("namaAnda")) 'Fungsi Trim digunakan untuk menghilangkan spasi di depan dan di belakang
StrGender = Pangkas(Permintaan.Form("gender"))
StrM = Trim(Permintaan.Form("pesan"))
StrMsg = Ganti(StrM,vbcrlf,"<Br>" & vbcrlf)
' vbcrlf setara dengan kombinasi carriage return dan line feed. Sedangkan untuk fungsi Ganti, fungsinya untuk mengganti vbcrlf pada string StrM dengan "<Br>" & vbcrlf (mohon pikirkan penggunaan vbcrlf ini? Anda akan memahaminya dengan melihat kode sumber HTML dari file keluaran) Silakan merujuk ke bantuan VBScript untuk detailnya.
%>
<HTML><BODI>
Nama: <%= StrName%><Br><Br>
Jenis Kelamin: <%= StrGender%><Br><Br>
Pesan: <Br><Br>
<%= StrM%><Br><Br>
<%= StrMsg%><Br><Br>
Faktanya, nilai tombol "Kirim" juga diteruskan: <Br>
<%= Permintaan.Formulir("Kirim")%><Br><Br>
<% 'Pertama pahami hal di atas, lalu lihat cara membaca beberapa opsi jika Anda tertarik
Response.Tulis "Jumlah total hobi yang dipilih:" & Request.Form("hobby").Count & "<Br>"
Redupkan aku
Untuk I = 1 hingga Request.Form("hobby").Count
Respon.Permintaan Tulis.Formulir("hobi")(I) & "<Br>"
Berikutnya
%>
</BODI></HTML>
Dalam contoh ini, untuk memudahkan pemahaman, kami menggunakan dua program. Bahkan, Anda juga dapat menggunakan satu program saja. Jika Anda tertarik, silakan lihat rutinitas wuf12.asp berikut, yang akan membantu memperdalam pemahaman Anda tentang variabel lingkungan.
<%@ Bahasa=VBScript %>
<% 'wuf12.asp
Opsi Eksplisit
Respon. Kedaluwarsa = 0
Redupkan StrName, StrGender, StrM, StrMsg
Jika Request.ServerVariables("Content_Length") <> 0 Lalu
'Setelah mengirimkan data, panjangnya tidak akan menjadi 0, jadi jalankan pernyataan berikut untuk menampilkan hasilnya
'Bagian berikut sebenarnya disalin dari wuf11.asp
StrName = Trim(Permintaan.Form("namaAnda"))
StrGender = Pangkas(Permintaan.Form("gender"))
StrM = Trim(Permintaan.Form("pesan"))
StrMsg = Ganti(StrM,vbcrlf,"<Br>" & vbcrlf)
%>
<HTML><BODI>
Nama: <%= StrName%><Br><Br>
Jenis Kelamin: <%= StrGender%><Br><Br>
Pesan: <Br><Br>
<%= StrM%><Br><Br>
<%= StrMsg%><Br><Br>
<%
Response.Tulis "Jumlah total hobi yang dipilih:" & Request.Form("hobby").Count & "<Br>"
Redupkan aku
Untuk I = 1 hingga Request.Form("hobby").Count
Respon.Permintaan Tulis.Formulir("hobi")(I) & "<Br>"
Berikutnya
%>
</BODI></HTML>
<%
Kalau tidak
'Saat halaman dimuat untuk pertama kalinya, tidak ada data yang dikirimkan, sehingga bagian sebelumnya tidak dijalankan, tetapi dimulai dari sini
'Inilah sebabnya ada dua pasang <HTML></HTML>
'Cukup salin wuf10.htm di bawah ini.
'<form method="post" action="wuf11.asp"> telah diganti dengan variabel lingkungan, namun sama persis
Response.Tulis "Lihat hasilnya: " & Request.ServerVariables("Script_name") & "<Br>"
%>
<HTML><BODI>
<form method="post" action="<%= Permintaan.ServerVariables("Nama_Script")%>">
Nama: <input type="text" name="namaAnda"><br>
Jenis Kelamin: <pilih nama="gender">
<option>Laki-laki</option>
<option>Wanita</option>
</pilih> <br>
Pesan: <textarea name="message">Halo!
Perhatikan pengolahan teks multibaris</textarea> <br>
Hobi (tahan tombol Ctrl untuk memilih beberapa):
<pilih nama="hobi" beberapa ukuran="4">
<option>Komputer</option>
<option>Belanja</option>
<option>Film</option>
<option>Membaca</option>
</pilih> <br>
<input type="kirim" nama="Kirim" value="Kirim">
<input type="reset" name="Kirim2" value="Reset">
</bentuk>
</BODI></HTML>
<%Berakhir Jika%>
(2) Jika Anda menggunakan metode GET untuk mengirimkan data, gunakan Request.Querystring untuk membaca data.
Edit terlebih dahulu file wuf13.htm berikut agar pengguna dapat memasukkan data:
<html>
<tubuh bgcolor="#FFFFFF">
<formulir metode="dapatkan" aksi="wuf14.asp">
Nama Inggris: <input type="text" name="Ename"> <br>
Nama Cina: <input type="text" name="Cname"><br>
Jenis Kelamin: <pilih nama="gender">
<option>Laki-laki</option>
<option>Wanita</option>
</pilih> <br>
<input type="kirim" nama="Kirim" value="Kirim">
<input type="reset" name="Kirim2" value="Reset">
</bentuk>
</tubuh>
</html>
Kemudian tulis file wuf14.asp yang perlu digunakan wuf13.htm untuk mengumpulkan data:
<%@ Bahasa=VBScript %>
<% 'wuf14.asp
Opsi Eksplisit
Respon. Kedaluwarsa = 0
Redupkan StrCname, StrEname, StrGender
StrEname = Trim(Request.QueryString("Ename")) 'Fungsi Trim digunakan untuk menghilangkan spasi di depan dan di belakang
StrCname = Pangkas(Permintaan.QueryString("Cname"))
StrGender = Pangkas(Permintaan.QueryString("gender"))
%>
<HTML><BODI>
Nama Inggris: <%= StrEname%><Br><Br>
Nama Cina: <%= StrCname%><Br><Br>
Jenis Kelamin: <%= StrGender%><Br><Br>
Lihatlah string yang dikirimkan: <Br>
<%= Permintaan.ServerVariables("Query_String")%>
</BODI></HTML>
Untuk lebih memahami program ini, sebaiknya Anda mencoba efek rutinitas wuf13.htm di browser terlebih dahulu, dan lihat hasil keluarannya. Anda akan menemukan bahwa string panjang di bilah alamat tampak familier, sama seperti sebelumnya mencari di Yahoo Dilihat hampir sama. Saat ini, Anda mencoba memasukkan "http://localhost/wuf14.asp?Ename=Rose&Cname=李二&gender=female" langsung di bilah alamat, dan Anda mendapatkan hasil yang sama. Jadi bisa dilihat seperti ini, hasil dari wuf13.htm adalah mendapatkan link dengan parameter seperti ini. Request.QueryString membaca setiap data dari parameter tambahan alamat http://.
Faktanya, ketika tombol "Kirim" ditekan, string kueri (data masukan) akan ditambahkan ke alamat URL dalam bentuk parameter (setiap parameter dipisahkan oleh "&") untuk mencapai tujuan transfer data. Pada saat yang sama, harap dicatat bahwa tidak ada bahasa Mandarin dalam string kueri yang ditampilkan di browser, tetapi karakter kacau yang tidak dapat dikenali berisi tanda persen. Ini karena karakter tersebut dikodekan. Terakhir, seperti sebelumnya, kedua program ini juga bisa digabung menjadi satu program (rutin wuf15.asp, Anda perlu mendownloadnya dari situs saya).
Beberapa catatan:
1. Jika Anda menggunakan metode POST untuk mengirimkan data, Request.ServerVariables("Content_Length")>0.
Jika Anda menggunakan metode GET untuk mengirimkan data, maka Request.ServerVariables("Query_String") <> "".
2. Setelah memahami prinsipnya, Anda dapat menggabungkan Request.Form dan Request.QueryString dalam file ASP yang sama.
3. Jika ada beberapa tombol dalam suatu Formulir, bagaimana cara menentukan tombol mana yang ditekan pengguna? Jika Anda perhatikan, Anda akan menemukan ada kalimat di rutinitas wuf11.asp yang juga mengirimkan nilai tombol "Kirim", dan nilai serupa dapat ditemukan di string kueri yang dihasilkan di wuf13.htm. Harap dicatat: Hanya nilai tombol yang ditekan yang dikirimkan, sedangkan nilai tombol lainnya adalah "". Ini adalah dasar penilaian (situs web InfoWeb Perencanaan China memiliki artikel serupa).