Bagaimana perasaan seorang lelaki memberlist borang php. Borang maklum balas dalam PHP dengan penghantaran melalui e-mel. Borang maklum balas dalam PHP

JavaScript disekat dalam penyemak imbas anda. Sila dayakan JavaScript untuk tapak berfungsi!

Bekerja dengan Borang

Borang HTML digunakan untuk memindahkan data daripada pengguna halaman Web ke pelayan. PHP menyediakan beberapa alat khas untuk bekerja dengan borang.

Pembolehubah Pratakrif

PHP mempunyai beberapa pembolehubah yang dipratentukan yang tidak berubah merentas semua aplikasi yang berjalan dalam persekitaran tertentu. Ia juga dipanggil pembolehubah persekitaran atau pembolehubah persekitaran. Ia mencerminkan tetapan persekitaran pelayan Web Apache, serta meminta maklumat untuk penyemak imbas tersebut. Ia adalah mungkin untuk mendapatkan nilai URL, rentetan pertanyaan, dan elemen lain permintaan HTTP.

Semua pembolehubah yang dipratentukan terkandung dalam tatasusunan bersekutu $GLOBALS. Selain pembolehubah persekitaran, tatasusunan ini juga mengandungi pembolehubah global yang ditakrifkan dalam program.

Contoh 1

Melihat Tatasusunan $GLOBALS $value) echo "\$GLOBALS[\"$key\"] == $value
"; ?>

Akibatnya, senarai semua pembolehubah global, termasuk pembolehubah persekitaran, akan muncul pada skrin. Yang paling biasa digunakan ialah:

PembolehubahPeneranganKandungan
$_SERVER["HTTP_USER_AGENT"]Nama dan versi pelangganMozilla/5.0 (serasi; Googlebot/2.1; +http://www.google.com/bot.html)
$_SERVER["REMOTE_ADDR"]alamat IP144.76.78.3
getenv("HTTP_X_FORWARDED_FOR")Alamat IP dalaman pelanggan
$_SERVER["REQUEST_METHOD"]Kaedah permintaan (GET atau POST)DAPATKAN
$_SERVER["QUERY_STRING"]Dalam permintaan GET, data yang dikodkan dihantar bersama dengan URL
$_SERVER["REQUEST_URL"]Alamat penuh pelanggan termasuk rentetan pertanyaan
$_SERVER["HTTP_REFERER"]URL halaman dari mana permintaan itu dibuat
$_SERVER["PHP_SELF"]Laluan ke program yang sedang dilaksanakan/index.php
$_SERVER["SERVER_NAME"]Domainlaman web
$_SERVER["REQUEST_URI"]Laluan/php/php_form.php

Mengendalikan input pengguna

Program pemprosesan input PHP boleh diasingkan daripada teks HTML yang mengandungi borang input, atau ia boleh diletakkan pada satu halaman.

Contoh 2

Contoh pemprosesan input

" method="post">

Nombor kad:



Tiada butang pemindahan data di sini, kerana... borang yang terdiri daripada satu medan diserahkan secara automatik apabila kekunci ditekan .

Apabila memproses elemen dengan pemilihan berbilang nilai, anda perlu menambah sepasang kurungan segi empat sama pada nama elemen untuk mengakses semua nilai yang dipilih. Untuk memilih berbilang item, tahan kekunci Ctrl.

Contoh 3.1

Senaraikan



HASIL CONTOH 3.1:

Contoh 3.2

Memproses senarai daripada fail ex1.htm

    "; foreach ($Item as $value) echo "
  • $value"; echo "
"; ?>

Contoh 4. Menerima nilai daripada kotak pilihan

$v) ( if($v) echo "Anda tahu bahasa pengaturcaraan $k!
"; else echo "Anda tidak tahu bahasa pengaturcaraan $k.
"; } } ?>
" method="post"> Apakah bahasa pengaturcaraan yang anda tahu?
PHP
Perl

HASIL CONTOH 4:

Contoh 5

"; ?>
" method="post">

Anda boleh memproses borang tanpa perlu risau tentang nama medan sebenar.

Untuk melakukan ini, anda boleh menggunakan (bergantung pada kaedah pemindahan) tatasusunan bersekutu $HTTP_GET_VARS atau $HTTP_POST_VARS . Tatasusunan ini mengandungi pasangan nama/nilai untuk setiap elemen borang yang diserahkan. Jika anda tidak peduli, anda boleh menggunakan tatasusunan bersekutu $_REQUEST .

Contoh 6

Mengendalikan input sewenang-wenangnya tanpa mengira kaedah penghantaran $value) echo "$key == $value
"; ?>

Contoh 7: Mengendalikan klik butang menggunakan pengendali "@".

">

Menggunakan fungsi pengepala(), menghantar pengepala "Lokasi" penyemak imbas, anda boleh mengubah hala pengguna ke halaman baharu.

Sebagai contoh:

Memindahkan fail ke pelayan. Muat naik fail. Muat naik

PHP membolehkan anda memindahkan fail ke pelayan. Borang HTML yang bertujuan untuk menyerahkan fail mesti mengandungi argumen enctype="multipart/form-data".

Di samping itu, dalam borang, sebelum medan untuk menyalin fail, mesti ada medan tersembunyi bernama max_file_size. Saiz maksimum fail yang dipindahkan hendaklah ditulis ke medan tersembunyi ini (biasanya tidak lebih daripada 2 MB).

Medan pemindahan fail itu sendiri ialah elemen INPUT biasa dengan hujah type="file".

Sebagai contoh:

" method="post">

Selepas fail dipindahkan ke pelayan, ia diberi nama unik dan disimpan dalam direktori fail sementara. Laluan penuh ke fail ditulis kepada pembolehubah global yang namanya sepadan dengan nama medan untuk memindahkan fail ini. Selain itu, PHP menyimpan beberapa maklumat tambahan tentang fail yang dipindahkan dalam pembolehubah global yang lain:

Contoh 8

Memproses fail yang dipindahkan "; echo "nama: ".$_FILES["fail pengguna"]["nama"]."
"; echo "saiz: ".$_FILES["fail pengguna"]["saiz"]."
"; echo "type: ".$_FILES["userfile"]["type"]."
"; } ?>
" method="post">



Contoh memuat naik fail ke pelayan

Jika masalah timbul dengan pelayan mentranskodkan fail yang dimuat turun, simbol dengan kod 0x00 digantikan dengan ruang (watak dengan kod 0x20), tambah pada fail httpd.conf dari direktori Apache (/usr/local/apache) baris berikut.

CharsetRecodeMultipartForms Dimatikan

Salah satu perkara hebat tentang PHP ialah cara ia berfungsi dengan borang HTML. Perkara utama di sini ialah setiap elemen borang tersedia secara automatik untuk program PHP anda. Untuk maklumat terperinci tentang menggunakan borang dalam PHP, baca bahagian. Berikut ialah contoh borang HTML:

Contoh #1 Borang HTML Paling Mudah

Nama awak:

Umur awak:

Tiada apa yang istimewa tentang borang ini. Ini adalah bentuk HTML biasa tanpa sebarang teg khas. Apabila pengguna mengisi borang dan mengklik butang hantar, halaman action.php akan dipanggil. Fail ini mungkin mempunyai sesuatu seperti:

Contoh #2 Memaparkan data borang

helo, .
kepada awaktahun.

Contoh output program ini:

Hello, Sergey. Anda berumur 30 tahun.

Jika anda tidak mengambil kira kepingan kod dengan htmlspecialchars() Dan (int), prinsip operasi kod ini hendaklah mudah dan boleh difahami. htmlspecialchars() Memastikan bahawa aksara HTML "istimewa" dikodkan dengan betul supaya HTML atau Javascript yang berniat jahat tidak dimasukkan ke dalam halaman anda. Medan umur, yang kita tahu sepatutnya nombor, kita boleh tukarkan kepada integer, yang secara automatik akan menyingkirkan aksara yang tidak diingini. PHP juga boleh melakukan ini secara automatik menggunakan sambungan penapis. Pembolehubah $_POST["nama"] dan $_POST["umur"] ditetapkan secara automatik untuk anda oleh PHP. Sebelum ini kami menggunakan pembolehubah superglobal $_SERVER, tetapi di sini kami juga menggunakan pembolehubah superglobal $_POST, yang mengandungi semua data POST. perasan, itu kaedah penghantaran(kaedah) borang kami adalah POST. Jika kita menggunakan kaedah tersebut DAPATKAN, maka maklumat borang kami akan berada dalam pembolehubah superglobal $_GET . Sebagai alternatif, anda boleh menggunakan pembolehubah $_REQUEST jika sumber data tidak penting. Pembolehubah ini mengandungi campuran data GET, POST, COOKIE.

15 tahun yang lalu

Menurut spesifikasi HTTP, anda harus menggunakan kaedah POST apabila anda menggunakan borang untuk menukar keadaan sesuatu pada hujung pelayan. Contohnya, jika halaman mempunyai borang untuk membenarkan pengguna menambah ulasan mereka sendiri, seperti ini halaman di sini, borang harus menggunakan POST. Jika anda mengklik "Muat Semula" atau "Muat Semula" pada halaman yang anda capai melalui POST, hampir selalu ralat -- anda tidak sepatutnya menyiarkan ulasan yang sama dua kali -- itulah sebabnya halaman ini tidak ditandakan atau dicache.

Anda harus menggunakan kaedah GET apabila borang anda, baik, mendapatkan sesuatu dari pelayan dan tidak benar-benar mengubah apa-apa. Sebagai contoh, borang untuk enjin carian harus menggunakan GET, kerana mencari tapak Web tidak seharusnya mengubah apa-apa yang pelanggan mungkin mengambil berat tentang, dan penanda halaman atau caching hasil pertanyaan enjin carian adalah sama berguna seperti penanda halaman atau caching. halaman HTML statik.

2 tahun yang lalu

Perlu dijelaskan:

POST tidak lebih selamat daripada GET.

Sebab untuk memilih GET vs POST melibatkan pelbagai faktor seperti niat permintaan (adakah anda "menyerahkan" maklumat?), saiz permintaan (terdapat had untuk berapa lama URL boleh dibuat dan parameter GET dihantar dalam URL), dan betapa mudahnya anda mahu Tindakan itu boleh dikongsi -- Contoh, Carian Google GET kerana ia memudahkan untuk menyalin dan berkongsi pertanyaan carian dengan orang lain hanya dengan berkongsi URL.

Keselamatan hanyalah pertimbangan di sini kerana fakta bahawa GET lebih mudah dikongsi daripada POST. Contoh: anda tidak mahu kata laluan dihantar oleh GET, kerana pengguna mungkin berkongsi URL yang terhasil dan secara tidak sengaja mendedahkan kata laluan mereka.

Walau bagaimanapun, GET dan POST sama-sama mudah untuk memintas oleh orang yang berniat jahat jika anda tidak menggunakan TLS/SSL untuk melindungi sambungan rangkaian itu sendiri.

Semua Borang yang dihantar melalui HTTP (biasanya port 80) adalah tidak selamat, dan hari ini (2017), tidak banyak sebab yang baik untuk tapak web awam tidak menggunakan HTTPS (yang pada asasnya HTTP + Transport Layer Security).

Sebagai bonus, jika anda menggunakan TLS anda meminimumkan risiko pengguna anda mendapat kod (IKLAN) yang disuntik ke dalam trafik anda yang tidak anda letakkan di sana.

Dalam pelajaran ini kita akan belajar tentang fungsi mel(), menggunakan contoh mencipta Borang maklum balas dalam PHP diikuti dengan menghantar data yang diterima melalui e-mel.

Untuk melakukan ini, kami akan membuat dua fail - format.php Dan mail.php. Fail pertama akan mengandungi hanya borang dengan medan untuk pengguna memasukkan data. Di dalam tag bentuk- butang "Hantar" dan atribut tindakan yang merujuk kepada pengendali - mail.php, ini adalah data dari borang diakses apabila butang ditekan "Hantar". Dalam contoh kami, data borang dihantar ke halaman web yang dipanggil "/mail.php". Halaman ini mengandungi skrip untuk PHP yang memproses data borang:


Data borang dihantar menggunakan POS(diproses sebagai $_POST). $_POST ialah tatasusunan pembolehubah yang dihantar kepada skrip semasa melalui kaedah POS.

Di bawah anda boleh melihat kandungan fail format.php, medan yang diisi oleh pengguna sendiri di beberapa tapak web. Semua medan kemasukan data mesti mempunyai atribut nama, kami menetapkan nilai itu sendiri, berdasarkan logik.




Borang maklum balas dalam PHP dihantar melalui e-mel


Borang maklum balas dalam PHP







Tinggalkan pesanan:
Nama awak:



e-mel:

Nombor telefon:

Mesej:

Kawasan teks boleh mengandungi bilangan aksara yang tidak terhad-->









Beginilah rupa bentuk secara visual dalam penyemak imbas.

Seterusnya kita menulis kod untuk fail tersebut mail.php. Kami datang dengan nama kami sendiri untuk pembolehubah. DALAM PHP pembolehubah bermula dengan tanda $ diikuti dengan nama pembolehubah. Nilai teks pembolehubah disertakan dalam tanda petikan. Menggunakan pembolehubah, kandungan borang dihantar ke e-mel pentadbir dengan hanya meletakkan nama elemen borang dalam kurungan segi empat sama - nilai nama.

$kepada = " [e-mel dilindungi]"; // e-mel penerima data daripada borang
$tema = "Borang maklum balas dalam PHP"; // subjek e-mel yang diterima
$message = "Nama anda: ".$_POST["nama"]."
";//tetapkan pembolehubah nilai yang diperoleh daripada borang name=name
$message .= "E-mel: ".$_POST["e-mel"]."
"; //diperolehi daripada borang name=email
$message .= "Nombor telefon: ".$_POST["telefon"]."
"; //diperolehi daripada borang name=phone
$message .= "Mesej: ".$_POST["message"]."
"; //diperolehi daripada borang name=message
$headers = "Versi MIME: 1.0" . "\r\n"; // tajuk sepadan dengan format ditambah aksara baris baharu
$headers .= "Content-type: text/html; charset=utf-8" . "\r\n"; // menunjukkan jenis kandungan yang dihantar
mel($kepada, $tema, $mesej, $headers); //menghantar nilai berubah-ubah kepada penerima melalui e-mel
?>

Oleh itu data daripada tatasusunan $_POST akan dihantar kepada pembolehubah yang sepadan dan dihantar melalui e-mel menggunakan fungsi tersebut mel. Jom isi borang kami dan tekan butang hantar. Jangan lupa sertakan e-mel anda. Surat itu tiba serta merta.