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é.
Si votre script n'est qu'un gestionnaire de formulaire, vous pouvez par exemple ajouter if(empty($_POST)) { die('沒有表單數(shù)據(jù)!'); }
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
塞進(jìn)一個(gè)巨大的 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
數(shù)組即可將其用于具有類似功能的其他表單。 (如果您確實(shí)需要重用它,則將其包裝到函數(shù)中是一個(gè)好主意;不要復(fù)制粘貼代碼。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
。如果提交空白表單,則會(huì)設(shè)置字段(為空字符串""
)。另請(qǐng)注意, empty
返回 true
對(duì)于任何等于 false
的內(nèi)容(即 ""
、0
、false
、null,[]
)。 (如果“0”是預(yù)期且可接受的值,請(qǐng)注意它的“空性”!)另一方面,isset
對(duì)于任何非 null
""
). Notez également que empty
renvoie 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. ??