Bentuk paling mudah untuk menghantar data melalui e-mel menggunakan HTML dan PHP. Borang HTML. Kaedah untuk menghantar data ke pelayan menggunakan borang

/php/php5ru.png HTTP/1.0

: www.php5.ru

Perkara yang anda akan lihat jika anda melihat ini akan berkelip pada skrin png-fail dalam penyunting teks.

Borang HTML. Kaedah untuk menghantar data ke pelayan menggunakan borang

Salah satu aplikasi yang paling biasa bagi mana-mana bahasa skrip pelayan ialah pemprosesan HTML- borang. Pengaturcaraan web kebanyakannya melibatkan pemprosesan pelbagai input pengguna.

RNR memudahkan tugas memproses dan menghuraikan borang yang diterima daripada penyemak imbas, kerana semua keupayaan yang diperlukan dibina ke dalam bahasa pada tahap paling rendah. Oleh itu, pengaturcara tidak perlu memikirkan ciri protokol HTTP dan tertanya-tanya bagaimana penghantaran dan penerimaan berlaku

DENGAN HTML-borang yang telah anda temui semasa mempelajari bahasa markup HTML.

Mari lihat contoh menghantar mesej daripada borang melalui e-mel.

Penyenaraian e_mel.html. Menghantar mesej daripada borang melalui e-mel

Menghantar borang melalui e-mel

Klik Tetapkan Semula dan isi pesanan.


Jika anda memproses kod HTML ini dengan penyemak imbas, halaman web akan dipaparkan, yang boleh dilihat pada skrin monitor:

Pengguna mengklik butang "Tetapkan semula", dan medan mengambil nilai lalainya. Borang tersebut diisi oleh pengguna, dan dengan mengklik butang "Hantar pesanan" dihantar ke Alamat e-mel ini dilindungi daripada spambots. Untuk melihatnya, anda mesti mendayakan JavaScript. Biasanya, penyemak imbas tidak menghantar borang itu sendiri, tetapi mempercayakan kerja ini kepada program e-mel yang dipasang secara lalai pada sistem pengendalian komputer (contohnya, Outlook). Surat dihantar dalam bentuk:

subjek: Borang dihantar daripada Microsoft Internet Explorer

nama = Prokhorov Viktor Sergeevich

value= Alamat e-mel ini dilindungi daripada spambots. Untuk melihatnya, anda mesti mendayakan JavaScript

obj = "Garis Panduan"

Surat itu terdiri daripada pasangan nama=nilai, yang dipilih mengikut tertib daripada medan borang.

Mari kita lihat lebih dekat contoh berikut.

Penyenaraian form_1.html

Masukkan nama anda:

Menyimpan kod ini dalam fail HTML form_1.html dan melihatnya menggunakan penyemak imbas, anda boleh melihat borang HTML:

Borang ini dilaksanakan oleh teg bekas . Teg menunjukkan dengan atributnya:

Alamat skrip yang borang akan dihantar;

Kaedah penghantaran dan ciri-ciri data yang terkandung dalam borang. peringkat rendah dan muktamad tag menentukan sempadan borang. Petunjuk mereka adalah wajib.

Atribut tag bekas
(
semua pilihan):

? tindakan--atribut yang nilainya URL-alamat (penuh atau saudara) yang diminta CGI-program. Program ini akan memproses data yang terkandung dalam borang. Ia boleh diterima untuk menggunakan entri MAILTO:URL. Dalam kes ini, borang akan dihantar melalui e-mel. Jika atribut tindakan jangan nyatakan, kandungan borang akan dihantar ke URL alamat dari mana halaman web ini dimuatkan, iaitu, "kepada dirinya sendiri." Ini adalah trengkas yang mudah, tetapi mengikut standard HTML atribut tindakan diperlukan.

? kaedah-- mentakrifkan kaedah HTTP, digunakan untuk menghantar data borang daripada penyemak imbas ke pelayan. Atribut kaedah boleh membawa dua maksud: dapatkan atau jawatan:

¦ dapatkan- menghantar data borang dalam bar alamat. Anda mungkin perasan pada pelbagai tapak web kehadiran "?" di hujung URL. dan data berikut dalam format parameter=nilai. Di sini "parameter" sepadan dengan nilai atribut nama elemen bentuk (lihat di bawah tentang teg ), A "maksudnya"- kandungan atribut nilai(ia mengandungi, sebagai contoh, input pengguna ke dalam medan teks dengan tag yang sama ).

Sebagai contoh, cuba cari sesuatu dalam Yandex dan perhatikan bar alamat penyemak imbas anda. Ini adalah caranya dapatkan.

¦ jawatan- data borang dihantar dalam badan permintaan. Jika tidak sepenuhnya jelas (atau tidak jelas sepenuhnya) apakah ini, jangan risau, kami akan kembali kepada isu ini tidak lama lagi.

Jika atribut kaedah tidak dinyatakan - tersirat "dapat".

? enctype-- atribut pilihan. Menentukan jenis kandungan borang yang digunakan untuk menentukan format pengekodan semasa menyerahkannya. DALAM HTML dua nilai yang mungkin untuk atribut ditakrifkan enctype:

¦ PERMOHONAN/X-WWW-FORM-URLENCED(lalai).

¦ PELBAGAI/FORM-DATA.

Tag membolehkan anda mencipta rentetan teks, nama fail, kata laluan, dsb. di dalam medan input borang. tiada tag hujung. Atribut dan ciri penggunaan bergantung pada bagaimana ia digunakan.

Tag - menentukan elemen bentuk yang ditakrifkan oleh atribut taip:

¦ Maksudnya "teks" menentukan medan input teks satu baris.

¦ Maksudnya "serahkan" menentukan butang yang, apabila diklik, menghantar borang ke pelayan.

Nilai lain mungkin (dan - bukan satu-satunya teg yang mentakrifkan elemen bentuk), tetapi kita akan melihatnya dalam bab berikut.

Jadi apa yang berlaku apabila butang OK diklik?

1. Penyemak imbas melihat elemen yang disertakan dalam borang dan mencipta daripada atributnya nama Dan nilai data bentuk. Katakan nama telah dimasukkan Vasya. Dalam kes ini, data borang: name=Vasya&okbutton=OK.

2. Penyemak imbas mewujudkan sambungan dengan pelayan, menghantar permintaan kepada pelayan untuk dokumen yang dinyatakan dalam atribut tindakan tag , menggunakan kaedah penghantaran data yang dinyatakan dalam atribut kaedah(dalam kes ini - DAPATKAN), menghantar data borang dalam permintaan.

3. Pelayan menganalisis permintaan yang diterima, menjana respons, menghantarnya ke penyemak imbas dan menutup sambungan.

4. Pelayar memaparkan dokumen yang diterima daripada pelayan.

Menghantar permintaan yang sama secara manual (menggunakan telnet) kelihatan seperti ini (dengan mengandaikan nama domain tapak adalah www.example.com).

Borang itu sendiri biasanya bertujuan untuk menerima maklumat daripada pengguna untuk menghantarnya selanjutnya ke pelayan, di mana data borang diterima oleh program pengendali. Program sedemikian boleh ditulis dalam mana-mana bahasa pengaturcaraan sebelah pelayan seperti PHP, Perl, dll. Alamat program ditunjukkan dalam atribut tindakan teg , seperti yang ditunjukkan dalam contoh 1.

Contoh 1: Menyerahkan data borang

HTML5 IE Cr Op Sa Fx

Data borang



Dalam contoh ini, data borang yang ditunjukkan oleh atribut nama (log masuk dan kata laluan) akan dihantar ke fail di /example/handler.php. Jika atribut tindakan tidak ditentukan, maka pemindahan berlaku ke alamat halaman semasa.

Pemindahan ke pelayan berlaku dalam dua kaedah berbeza: GET dan POST, untuk menetapkan kaedah dalam teg
Atribut kaedah digunakan, dan nilainya ialah kata kunci dapatkan dan siarkan. Jika atribut kaedah tidak ditentukan, maka secara lalai data dihantar ke pelayan menggunakan kaedah GET. Dalam jadual Rajah 1 menunjukkan perbezaan antara kaedah ini.

Kaedah yang digunakan boleh ditentukan dengan mudah oleh bar alamat penyemak imbas. Jika tanda soal muncul di dalamnya dan alamatnya kelihatan seperti ini, maka ini pastinya GET.

http://www.google.ru/search?q=%D1%81%D0%B8%D1%81%D1%8C%D0%BA%D0%B8&ie=utf-8

Gabungan unik parameter dalam bar alamat secara unik mengenal pasti halaman, jadi halaman dengan alamat ?q=node/add dan ?q=node dianggap berbeza. Ciri ini digunakan oleh sistem pengurusan kandungan (CMS, Sistem pengurusan kandungan) untuk mencipta banyak halaman laman web. Pada hakikatnya, satu fail digunakan yang menerima permintaan GET dan, menurutnya, menjana kandungan dokumen.

Disenaraikan di bawah adalah aplikasi biasa kaedah ini di tapak.

DAPATKAN

Memindahkan data teks kecil ke pelayan; carian tapak.

Enjin carian dan borang carian tapak sentiasa dihantar menggunakan kaedah GET, ini membolehkan anda berkongsi hasil carian dengan rakan, menghantar pautan melalui mel atau menyiarkannya di forum.

POS

Memindahkan fail (foto, arkib, program, dll.); menghantar komen; menambah dan menyunting mesej di forum, blog.

Secara lalai, borang diproses dalam tab penyemak imbas semasa namun, apabila menyerahkan borang, anda boleh menukar parameter ini dan membuka pengendali borang dalam tab atau bingkai baharu. Tingkah laku ini ditentukan melalui "nama konteks", yang merupakan nilai atribut sasaran teg . Nilai popular adalah _kosong untuk membuka borang dalam tetingkap atau tab baharu, dan nama bingkai, yang ditentukan oleh atribut nama tag



Dalam contoh ini, apabila anda mengklik butang Hantar, hasil penyerahan borang dibuka dalam bingkai yang dipanggil kawasan .

Elemen bentuk biasanya diletakkan di dalam teg
, dengan itu menentukan data yang akan dihantar ke pelayan. Pada masa yang sama, HTML5 mempunyai keupayaan untuk memisahkan borang daripada elemennya. Ini dilakukan untuk kemudahan dan serba boleh, jadi susun atur yang kompleks mungkin mengandungi beberapa bentuk yang tidak sepatutnya bersilang antara satu sama lain, atau, sebagai contoh, beberapa elemen dipaparkan menggunakan skrip di satu tempat pada halaman, dan borang itu sendiri terletak di tempat lain. . Sambungan antara borang dan elemennya berlaku dalam kes ini melalui pengecam borang, dan atribut borang dengan nilai yang sama dengan pengecam ini harus ditambahkan pada elemen (contoh 3).

Contoh 3: Memautkan borang ke medan

HTML5 IE Cr Op Sa Fx

Borang



Dalam contoh ini tag
dikenal pasti secara unik melalui pengecam pengesahan, dan form="auth" ditambahkan pada medan yang harus diserahkan melalui borang. Dalam kes ini, tingkah laku elemen tidak berubah apabila butang diklik, log masuk dan kata laluan dihantar kepada pengendali handler.php.

Walaupun parameter pemindahan borang secara tradisinya ditentukan dalam teg , mereka juga boleh dipindahkan ke butang hantar borang (

nama anda: alamat anda: Hantar: