Pembolehubah luaran
Pembolehubah luaran PHP ialah beberapa pembolehubah yang ditentukan oleh PHP semasa digunakan. Pembolehubah ini dinyatakan sedemikian dan digunakan sedemikian.
Mari kita jelaskan dahulu beberapa contoh yang paling biasa digunakan Kami menamakan pengguna borang berikut.html:
<html> <head> </head> <body> <form action="reg.php" method="get"> <input type="text" name="username" /> <input type="password" name="pwd" /> <input type="submit" value="提交" /> </form> </body> </html>
Di atas ialah kod HTML yang sangat asas Ia bermaksud menggunakan kaedah get untuk menghantar pengguna dan kata laluan ke reg.php (dinyatakan dalam baris 6 kod di atas). reg.php mencari cara untuk menerima nama pengguna dan nilai pwd yang diluluskan oleh pengguna.
Kami mendapat pembolehubah luaran pertama kami: $_GET.
Fungsi utama $_GET adalah untuk mendapatkan data yang diluluskan oleh get.
Mari tulis reg.php dan cuba gunakan $_GET untuk menerima nilai:
<?php //$_GET后面加上中括号,将username作为字符串放在中括号里面,就得到了表单里面的<input type="text" name="username" /> 的值 $u = $_GET['username']; echo $u.'<br />'; //$_GET['pwd'] 得到表单<input type="text" name="username" /> 的值 $passwd = $_GET['pwd']; echo $passwd.'<br />'; ?>
Anda boleh mengeluarkan nilai untuk melihat hasilnya. Melalui eksperimen di atas, kita tahu bahawa nilai yang dimasukkan daripada borang boleh diperolehi melalui pembolehubah luaran $_GET.
Apabila anda bereksperimen, anda akan menemui ciri pada bar alamat:
Mengikut gambar di atas, perhatikan ciri:
reg. php diikuti oleh ? (tanda soal)
Nama pengguna dalam borang bertukar kepada bar alamat
Nilai nama pengguna dalam borang ialah akar, dan nama pengguna diikuti oleh = (nombor dll) Nilai yang dimasukkan
nama pengguna (nama) = akar (nilai) Kata laluan berikut ialah kata laluan (nama) = 123123 (nilai), dipisahkan oleh & (dan aksara) di tengah
Kata laluan Nampak, bagaimana untuk memastikan keselamatan? Bagaimana jika kata laluan saya tidak kelihatan dalam bar alamat semasa proses pendaftaran?
Pada masa ini kita perlu menggunakan nilai siaran Nilai siaran tidak kelihatan dalam bar alamat.
Kami akan mengubah suai kod yang sama dalam contoh di atas Kod html adalah seperti berikut:
<html> <head> </head> <body> <!-- 这一行method 对应的值改为了post --> <form action="reg.php" method="post"> <input type="text" name="username" /> <input type="password" name="pwd" /> <input type="submit" value="提交" /> </form> </body> </html>
$_GET dalam kod PHP telah ditukar kepada $_POST:
rreeeCiri pemerhatian: ? (tanda soal) selepas
reg.php tiada. Nama pengguna dan kata laluan di bahagian belakang juga tiada. Jadi bagaimana dia menghantar data?
Dia ialah data yang dihantar melalui fail pengepala permintaan penyemak imbas yang tidak dapat kita lihat. Jadi lajur URL tidak kelihatan.
Nota: Terdapat proses demonstrasi cara melihat hasil pemindahan melalui pepijat api pelayar Firefox dalam lampiran. Bahagian ini ialah semua kaedah penghantaran yang ditentukan oleh protokol HTTP.
Selain itu, kami juga mempunyai $_REQUEST untuk menerima data. Sekarang kita mengendalikannya seperti ini:
Tukar semua $_POST dalam coretan kod php kepada $_REQUEST, kodnya adalah seperti berikut:
<?php //$_POST后面加上中括号,将username作为字符串放在中括号里面,就得到了表单里面的<input type="text" name="username" /> 的值 $u = $_POST['username']; echo $u.'<br />'; //$_POST['pwd'] 得到表单<input type="text" name="username" /> 的值 $passwd = $_POST['pwd']; echo $passwd.'<br />'; ?>
Tukar kaedah dalam baris ini dalam pengguna halaman web. html untuk Laksana dapatkan sekali, kemudian tukarkannya kepada Siar dan jalankannya semula untuk melihat hasilnya:
<?php $u = $_REQUEST['username']; echo $u.'<br />'; $passwd = $_REQUEST['pwd']; echo $passwd.'<br />'; ?>
Melalui percubaan di atas, anda akan mendapati bahawa $_REQUEST boleh menerima nilai yang diluluskan oleh mendapatkan atau nilai yang diluluskan oleh jawatan.
Selain itu, kami meringkaskan beberapa pembolehubah luaran dan memerlukan tahap pembelajaran mata pengetahuan: memahami makna, dan menghafal penulisan dan fungsi perkataan ini.
全局变量名 | 功能说明 |
---|---|
$_COOKIE | 得到会话控制中cookie传值 |
$_SESSION | 得到会话控制中session的值 |
$_FILES | 得到文件上传的结果 |
$_GET | 得到get传值的结果 |
$_POST | 得到post传值的结果 |
$_REQUEST | 即能得到get的传值结果,也能得到Post传值的结果 |
Sila ingat satu perkara lagi: semua pembolehubah di atas adalah super-global. (Maksud super global akan dijelaskan kemudian).
Nota:
1 Kami percaya bahawa semua input data daripada pengguna tidak boleh dipercayai. Separuh kedua buku ini secara khusus akan menerangkan sekatan dan penapisan
2. Apabila menyerahkan data, kaedah yang biasa kami gunakan ialah dapatkan dan hantar. Dapat difahami bahawa nilai yang diluluskan oleh get boleh dilihat dalam url, tetapi nilai yang diluluskan oleh siaran tidak kelihatan dalam url.
Nilai siaran tidak kelihatan dalam URL Data dihantar ke pelayan yang ditetapkan melalui bahagian pengepala penyemak imbas. Anda perlu menggunakan alat khas untuk melihat nilai yang dihantar oleh Pos. Anda boleh memuat turun pemalam Firefox (pepijat api) untuk melihatnya.
Ikon Firefox:
Buka pepijat api:
Lihat data pemindahan pengepala (rangkaian, klik POST reg.php dan pilih Post), dan anda akan melihat nama yang dipindahkan dan nilai data yang dipindahkan:
1 Jika anda benar-benar menggunakan get untuk lulus kata laluan, kata laluan akan dipaparkan dalam bar alamat. Sejarah penyemak imbas secara automatik merekodkan alamat yang dilawati. Pengguna yang berniat jahat akan dapat mendapatkan kata laluan yang telah anda masukkan dengan melihat sejarah penyemak imbas anda. Oleh itu, kaedah get tidak boleh digunakan untuk penghantaran kata laluan.
get
Sebutan: [get]
Penjelasan: Get, dalam komputer, merujuk kepada cara penghantaran data
post
Sebutan: [poʊst]
Penjelasan: Merujuk kepada kaedah penghantaran data dalam komputer
permintaan
Sebutan: [rɪˈkwɛst]
Penjelasan: Minta
serahkan
Sebutan: [səbˈmɪt>]<🎜 : Serahkan, serahkan
Sebutan: [ˈækʃən]
Penjelasan: Tindakan, aktiviti
bahagian seterusnya