Maison > Questions et réponses > le corps du texte
Je suis similaire à php et je ne comprends pas quel est le problème.
Parfois, les fonctions php m'envoient des messages vides comme
Noms des parents
Trop tard :
Lynn :
Numéro de téléphone :
Courriel :
Date de naissance :
Message text:
Mais il devrait être renseigné avec des valeurs comme celle-ci
Test de nom des parents
Trop d'erreurs : Test
Lynn : Teste
Numéro de téléphone : Test
E-mail : test@test
Date de naissance : 21313
Message text: Test
Voici mon code php
<!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 '); ?>
S'il vous plaît, donnez-moi des conseils sur ce qui n'a pas fonctionné.
P粉7690454262024-04-01 09:38:47
Si votre script n'est qu'un gestionnaire de formulaire, vous pouvez par exemple ajouter if(empty($_POST)) { die('没有表单数据!'); }
en haut pour l'empêcher de s'exécuter, sauf en réponse à la soumission d'un formulaire.
Si vous devez remplir tous les champs, vous devez vérifier chaque champ avant de traiter l'e-mail. Vous pouvez mettre tout cela isset
塞进一个巨大的 if(isset(...)
dans des déclarations. Cependant, il existe un moyen plus simple et plus lisible de procéder. Tout d’abord, configurons quelques variables :
// Your required fields: $fields = ['parent', 'child', 'contacts', 'email', 'bbd', 'city', 'mess']; // Your data is collected here: $data = []; // Any errors are collected here: $errors = [];
On boucle ensuite sur les champs et si la valeur existe, on l'ajoute à $data
, sinon on ajoute une annotation d'erreur.
// 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. }
S'il y a une erreur (= champ manquant), l'email ne sera pas envoyé. En bonus, vous disposez désormais d'un morceau de code réutilisable qui doit simplement être modifié $fields
数组即可将其用于具有类似功能的其他表单。 (如果您确实需要重用它,则将其包装到函数中是一个好主意;不要复制粘贴代码。function x($post, $fields) { ... }
pour les fonctions d'aide aux opérations de base. )
Veuillez noter qu'ici nous utilisons empty
au lieu de isset
. Si un formulaire vierge est soumis, le champ empty
代替 isset
。如果提交空白表单,则会设置字段(为空字符串""
)。另请注意, empty
返回 true
对于任何等于 false
的内容(即 ""
、0
、false
、<代码>null,[]
)。 (如果“0”是预期且可接受的值,请注意它的“空性”!)另一方面,isset
对于任何非 null
""
). Notez également que empty
renvoie < code >true pour tout ce qui est égal à false
(c'est-à-dire ""
, 0
, false
, null
, []
). (Si "0" est une valeur attendue et acceptable, merci de noter son "vide" !
) Par contre,isset
Renvoie vrai pour tout contenu qui n'est pas null
. 🎜
🎜P.S. Si le code ci-dessus est le code complet et que votre script gère uniquement les données du formulaire et les redirections, alors vous n'avez pas du tout besoin du wrapper HTML. Il ne s'affiche jamais. 🎜