Saya serupa dengan php dan tidak faham apa masalahnya.
Kadang-kadang fungsi php menghantar saya mesej kosong seperti
Nama ibu bapa
Terlalu lewat:
Lynn:
Nombor telefon:
E-mel:
Tarikh lahir:
Teks mesej:
Tetapi ia harus diisi dengan nilai seperti ini
Ujian Nama Ibu Bapa
Terlalu Banyak Kesilapan: Ujian
Lynn: Ujian
Nombor Telefon: Ujian
E-mel: test@test
Tarikh lahir: 21313
Teks mesej: Menguji
Ini kod php saya
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Обратная Связь</title> </head> <body> <?php if (isset($_POST['parent'])) {$parent = $_POST['parent'];} if (isset($_POST['child'])) {$child = $_POST['child'];} if (isset($_POST['contacts'])) {$contacts = $_POST['contacts'];} if (isset($_POST['email'])) {$email = $_POST['email'];} if (isset($_POST['bbd'])) {$bbd = $_POST['bbd'];} if (isset($_POST['city'])) {$city = $_POST['city'];} if (isset($_POST['mess'])) {$mess = $_POST['mess'];} $to = "info@test.ee"; /*Укажите ваш адрес электоронной почты*/ $headers = "Content-type: text/plain; text/html; charset=utf-8"; $subject = "Kontakti Info"; $message = "Vanema nimi $parent \n Lapse nimi: $child \nLinn: $city \nTelefoninumber: $contacts \nEmail: $email \nSünnikuup?ev: $bbd \nS?numi tekst: $mess"; $send = mail ($to, $subject, $message, $headers); if ($send == 'true') { echo "<b>Спасибо за отправку вашего сообщения!<p>"; echo "<a href=index.php>Нажмите,</a> чтобы вернуться на главную страницу"; } else { echo "<p><b>Ошибка. Сообщение не отправлено!"; } ?> </body> </html> <?php header('Location: https://test.ee/aitah.html '); ?>
Tolong beri saya nasihat, apa yang silap.
Jika skrip anda hanyalah pengendali borang, anda boleh cth. tambahkan if(empty($_POST)) { die('沒(méi)有表單數(shù)據(jù)!'); }
ke bahagian atas untuk menghalangnya daripada berjalan melainkan sebagai balasan kepada penyerahan borang.
Jika anda perlu mengisi semua medan, anda mesti menyemak setiap medan sebelum memproses e-mel. Anda boleh meletakkan semua ini isset
塞進(jìn)一個(gè)巨大的 if(isset(...)
dalam penyata. Walau bagaimanapun, terdapat cara yang lebih mudah dan lebih mudah dibaca untuk melakukan ini. Mula-mula, mari sediakan beberapa pembolehubah:
// Your required fields: $fields = ['parent', 'child', 'contacts', 'email', 'bbd', 'city', 'mess']; // Your data is collected here: $data = []; // Any errors are collected here: $errors = [];
Kami kemudian melingkari medan dan jika nilai itu wujud, tambahkannya pada $data
, jika tidak, kami menambah anotasi ralat.
// Loop to check your required fields: foreach($fields as $field) { // If value exists, add to $data: if(!empty($_POST[$field])) { $data[$field] = $_POST[$field]; } // Else add error: else { $errors[] = 'Missing field: ' . $field; } } if(empty($errors)) { // No errors, send your email // You can use "Vanema nimi {$data['parent']}...", // ... otherwise: extract($data) to use $parent etc. } else { // You could report those errors, or redirect back to the form, or whatever. }
Jika terdapat ralat (= medan hilang), e-mel tidak akan dihantar. Sebagai bonus, anda kini mempunyai kod boleh guna semula yang hanya perlu diubah suai $fields
數(shù)組即可將其用于具有類似功能的其他表單。 (如果您確實(shí)需要重用它,則將其包裝到函數(shù)中是一個(gè)好主意;不要復(fù)制粘貼代碼。function x($post, $fields) { ... }
untuk fungsi pembantu operasi asas. )
Sila ambil perhatian bahawa di sini kami menggunakan kosong
dan bukannya isset
. Jika borang kosong diserahkan, medan empty
代替 isset
。如果提交空白表單,則會(huì)設(shè)置字段(為空字符串""
)。另請(qǐng)注意, empty
返回 true
對(duì)于任何等于 false
的內(nèi)容(即 ""
、0
、false
、null,[]
)。 (如果“0”是預(yù)期且可接受的值,請(qǐng)注意它的“空性”!)另一方面,isset
對(duì)于任何非 null
""
). Juga ambil perhatian bahawa kosong
mengembalikanbenar untuk apa-apa yang sama dengan false
(iaitu ""
, 0
, false
, null
, [
). (Jika "0" ialah nilai yang dijangka dan boleh diterima, sila ambil perhatian "kekosongan"nya!
) Sebaliknya,isset
Mengembalikan benar untuk mana-mana kandungan yang bukan null
. ??
??P.S. Jika kod di atas adalah kod lengkap dan skrip anda hanya mengendalikan data borang dan ubah hala, maka anda tidak memerlukan pembungkus HTML sama sekali. Ia tidak pernah dipaparkan. ??