Mengapakah `isset($_POST['mel'])` Sentiasa Kembali Benar Walaupun Dengan Input Borang Kosong?

Linda Hamilton
Lepaskan: 2024-11-09 03:53:02
asal
284 orang telah melayarinya

Why Does `isset($_POST[

Memahami Gelagat "isset $_POST" untuk Pengesahan Input Borang

Apabila menggunakan borang dalam pembangunan web, adalah penting untuk mengesahkan input pengguna untuk memastikan integriti data. Satu senario biasa ialah menyemak sama ada medan input, seperti alamat e-mel, diisi sebelum meneruskan lebih lanjut.

Dalam senario yang diberikan, pembangun menghadapi isu di mana mekanisme pengesahan sentiasa mengembalikan "Ya, mel adalah set" walaupun apabila pengguna menyerahkan borang kosong. Untuk memahami mengapa ini berlaku, mari kita mendalami kelakuan isset($_POST["mel"]).

Apakah yang isset($_POST["mel"]) lakukan?

Fungsi isset() dalam PHP menyemak sama ada pembolehubah yang ditentukan ditetapkan, bermakna ia telah diberikan nilai, walaupun nilai itu kosong. Dalam kes penyerahan borang, $_POST["mel"] mewakili nilai yang dimasukkan ke dalam medan input bernama "mel."

Mengapa ia sentiasa ditetapkan?

Kebanyakan input borang, termasuk medan input teks, sentiasa ditetapkan, tidak kira sama ada ia kosong atau tidak. Ini kerana apabila borang diserahkan, semua inputnya, malah yang kosong, dimasukkan ke dalam tatasusunan superglobal $_POST.

Membetulkan Pengesahan

Untuk mengesahkan dengan tepat jika input kosong, anda harus menggunakan operator !empty(). Operator !empty() mengembalikan benar jika pembolehubah tidak kosong, termasuk kedua-dua rentetan bukan kosong dan nombor bukan sifar.

Oleh itu, kod pengesahan yang diubah suai ialah:

if (!empty($_POST["mail"])) {
    echo "Yes, mail is set";    
} else {  
    echo "No, mail is not set";
}
Salin selepas log masuk

Pembetulan ini memastikan bahawa mesej "Mel ditetapkan" hanya dipaparkan apabila medan input mengandungi nilai bukan kosong.

Atas ialah kandungan terperinci Mengapakah `isset($_POST['mel'])` Sentiasa Kembali Benar Walaupun Dengan Input Borang Kosong?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan