Direkomendasikan: Solusi Kueri Ganda ASP Kita sering mengalami beberapa masalah kueri, dan pernyataan SQL yang panjang sering membuat para bhikkhu bingung. Terutama ketika bagian klien mengisi kondisi kueri, akan lebih sulit untuk menggunakan metode biasa. Berikut ini dengan cerdik menggunakan identitas di mana 1 = 1 (pada kenyataannya, itu banyak, biarkan saja memiliki nilai yang benar) untuk menyelesaikan masalah ini. Ringkasan teks 'Judul Informasi Subjek'
Bagaimana cara membatasi beberapa pengiriman formulir berulang dalam ASP? Di internet, kami menemukan banyak bentuk setiap hari, dan kami juga melihat bahwa sebagian besar dari mereka tidak membatasi pengguna untuk mengirimkan formulir yang sama beberapa kali. Kurangnya pembatasan seperti itu kadang -kadang dapat menghasilkan beberapa hasil yang tidak terduga, seperti berlangganan duplikat ke layanan email atau pemungutan suara duplikat.
Artikel ini menjelaskan cara sederhana untuk mencegah pengguna mengirimkan formulir yang sama beberapa kali selama sesi saat ini dalam aplikasi ASP. Ini terutama terdiri dari empat subrutin. Dalam aplikasi yang lebih sederhana, Anda hanya perlu menempatkan kode -kode ini di file sertakan dan langsung mengutipnya; Untuk lingkungan yang lebih kompleks, kami akan memberikan beberapa saran peningkatan di akhir artikel.
1. Proses kerja dasar
Selanjutnya, kita membahas empat subrutin ini secara bergantian.
(ASP membatasi beberapa pengajuan berulang dari bentuk) inisialisasi
Di sini kami ingin menyimpan dua variabel dalam objek sesi, di antaranya:
⑴ Setiap formulir sesuai dengan pengidentifikasi unik yang disebut FID, dan penghitung digunakan untuk membuat nilai ini unik.
⑵ Setiap kali suatu formulir berhasil diajukan, FID -nya harus disimpan dalam objek kamus.
Kami menggunakan proses khusus untuk menginisialisasi data di atas. Meskipun setiap subrutin akan menyebutnya di masa depan, itu sebenarnya hanya akan dieksekusi sekali selama setiap sesi:
Berikut ini adalah konten yang dikutip: Sub initializefid () Jika tidak isObject (sesi (fidlist)) lalu Set Sesi (Fidlist) = Server.CreateObject (Scripting.Dictionary) Sesi (fid) = 0 Akhiri jika Akhir sub |
(Batasi beberapa pengajuan berulang formulir dalam ASP) pengidentifikasi unik untuk menghasilkan formulir
Fungsi berikut menghasilkanfid () digunakan untuk menghasilkan bendera unik untuk formulir. Fungsi pertama menambahkan nilai FID dengan 1 dan kemudian mengembalikannya:
Berikut ini adalah konten yang dikutip: Fungsi menghasilkanfid () Inisialisasi Sesi (fid) = sesi (fid) 1 GenerateFid = Sesi (FID) Fungsi akhir |
(Beberapa pengajuan berulang dari formulir terbatas di ASP) Daftarkan formulir yang diajukan
Ketika formulir diserahkan dengan sukses, pengidentifikasi uniknya terdaftar dalam objek kamus:
Berikut ini adalah konten yang dikutip: Sub registerfid () Redup strfid Inisialisasi strfid = permintaan (fid) Sesi (fidlist) .add strfid, sekarang () Akhir sub |
(ASP membatasi beberapa pengiriman berulang dari Formulir 4) Periksa apakah formulir tersebut diserahkan berulang kali
Sebelum memproses formulir yang dikirimkan secara resmi oleh pengguna, Anda harus memeriksa apakah FID -nya terdaftar di objek kamus. Fungsi checkfid () berikut digunakan untuk menyelesaikan pekerjaan ini. Jika telah terdaftar, ia mengembalikan False, jika tidak ia mengembalikan True:
Berikut ini adalah konten yang dikutip: Function checkfid () Redup strfid Inisialisasi strfid = permintaan (fid) Checkfid = not sesi (fidlist) .exists (strfid) Fungsi akhir |
2. Cara menggunakan
Ada dua tempat di mana fungsi di atas digunakan, yaitu ketika pembuatan bentuk dan pemrosesan hasil. Dengan asumsi bahwa empat subrutin di atas telah dimasukkan ke dalam formulir file inklusi.inc, kode berikut memutuskan apakah akan menghasilkan formulir atau memproses hasil formulir berdasarkan nilai FID. Proses pemrosesan yang dijelaskan cocok untuk sebagian besar aplikasi ASP:
Berikut ini adalah konten yang dikutip: < %Opsi eksplisit %> <!-#Sertakan file = forms.inc <Html> <head> <Title> Tes pengiriman formulir </iteme> < /Kepala <body> < % Jika permintaan (fid) = lalu Menghasilkan bentuk Kalau tidak Bentuk proses Akhiri jika %> </body> </html> |
GenerateForm bertanggung jawab untuk menghasilkan formulir, dan formulir harus berisi FID tersembunyi, seperti:
Berikut ini adalah konten yang dikutip: < % Sub generateForm () %> <Form Action = < %= Request.ServerVariable (Path_info) %> Metode = get> <Input Tipe = Hidden Name = FID Value = < %= GenerateFid () %>> <input type = name teks = nilai param1 => <Input Tipe = Kirim Nilai = OK> </form> < % Akhir sub %> |
ProcessForm bertanggung jawab untuk memproses konten yang dikirimkan melalui formulir, tetapi sebelum diproses, pertama -tama harus memanggil checkfid () untuk memeriksa apakah formulir saat ini telah dikirimkan. Kelas kode seperti:
Berikut ini adalah konten yang dikutip: < % Sub proses bentuk () Jika checkfid () lalu Respons. Tulis apa yang Anda ketik |
Bagikan: Bagaimana cara menghasilkan HTML di ASP? Sudah ada banyak sistem berita yang menghasilkan HTML, tetapi mereka semua menggunakan templat. Fungsi ini menyimpan kode HTML yang dihasilkan oleh halaman ASP ke dalam file HTML, jadi tidak perlu mengubah halaman asli untuk dengan mudah menyelesaikan sistem berita yang menghasilkan HTML. ^ _^ Karena kodenya relatif singkat, konten yang dikutip berikut tidak dikomentari di sini: % 'saat target