cari

Rumah  >  Soal Jawab  >  teks badan

Mel PHP menghantar e-mel kosong

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.

P粉225961749P粉225961749227 hari yang lalu436

membalas semua(1)saya akan balas

  • P粉769045426

    P粉7690454262024-04-01 09:38:47

    Jika skrip anda hanyalah pengendali borang, anda boleh cth. tambahkan if(empty($_POST)) { die('没有表单数据!'); } 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 塞进一个巨大的 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 数组即可将其用于具有类似功能的其他表单。 (如果您确实需要重用它,则将其包装到函数中是一个好主意;不要复制粘贴代码。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。如果提交空白表单,则会设置字段(为空字符串"")。另请注意, empty 返回 true 对于任何等于 false 的内容(即 ""0false、<代码>null,[])。 (如果“0”是预期且可接受的值,请注意它的“空性”!)另一方面,isset 对于任何非 null

    akan ditetapkan (kepada rentetan kosong ""). Juga ambil perhatian bahawa kosong mengembalikan< kod >benar 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. 🎜

    balas
    0
  • Batalbalas