


Traitement de formulaire robuste: gestion des erreurs et commentaires des utilisateurs avec $ _POST
Vérifiez et nettoyez toujours l'entrée $ _POST, utilisez la garniture, filter_input et htmlSpecialChars pour s'assurer que les données sont légales et sécurisées; 2. Fournir des commentaires d'utilisateur clairs, afficher les messages d'erreur ou les invites de réussite en vérifiant le tableau des erreurs $; 3. Empêcher les vulnérabilités communes, utiliser les jetons de session pour empêcher les attaques du CSRF, éviter la sortie non basse et l'injection SQL; 4. Gardez les entrées valides soumises par l'utilisateur lorsqu'une erreur se produit, améliorant l'expérience utilisateur. Suivez ces étapes pour créer un système de traitement de formulaire PHP sécurisé et fiable qui garantit l'intégrité des données et la convivialité.
Gestion des soumissions de formulaires en toute sécurité et efficacement dans PHP nécessite plus que la simple lecture de données de $_POST
. Un système de traitement de formulaire robuste doit inclure une gestion des erreurs appropriée, une validation des données et des commentaires de l'utilisateur. Voici comment créer un processeur de formulaire fiable en utilisant $_POST
avec une attention à ces aspects clés.

Valider et désinfecter les contributions de $_POST
Ne faites jamais confiance à l'entrée de l'utilisateur. Valider et désinfecter toujours les données de $_POST
avant de l'utiliser.
- La validation garantit que les données répondent aux critères attendus (par exemple, format par e-mail, champs requis).
- La désinfection nettoie les données pour supprimer ou échapper au contenu potentiellement harmonieux.
$ errors = []; $ data = []; // Vérifiez si le formulaire a été soumis if ($ _server ['request_method'] === 'post') { // Coupez et désinfectez l'entrée $ name = trim ($ _ post ['name'] ?? ''); $ email = filter_input (input_post, 'e-mail', filter_validate_email); $ message = TRIM ($ _ poster ['message'] ?? ''); // Valider les champs requis if (vide ($ name)) { $ erreurs [] = 'le nom est requis.'; } autre { $ data ['name'] = htmlSpecialChars ($ name, ent_quotes, 'utf-8'); } if (! $ email) { $ erreurs [] = 'Un e-mail valide est requis.'; } autre { $ data ['e-mail'] = $ e-mail; // filter_input désinfecte déjà } if (vide ($ message)) { $ errors [] = 'le message est requis.'; } autre { $ data ['message'] = htmlSpecialChars ($ message, ent_quotes, 'utf-8'); } // Si pas d'erreurs, traitez le formulaire (par exemple, enregistrer sur db, envoyez un e-mail) if (vide ($ errors)) { // traite les données valides $ Success = true; // Exemple: mail ($ data ['e-mail'], 'feedback', $ data ['message']); } }
Fournir des commentaires clairs sur l'utilisateur
Après le traitement, montrez aux utilisateurs ce qui s'est passé - que ce soit le succès ou les erreurs.

Utilisez un simple conditionnel pour afficher les messages:
<? php if (! vide ($ erreurs)) :?> <div class = "error"> <ul> <? Php ForEach ($ erreurs comme $ error) :?> <li> <? = htmlspecialchars ($ error)?> </li> <? PHP EndForEach; ?> </ul> </div> <? Php endif; ?> <? Php if (isset ($ Success)) :?> <div class = "Success"> Merci! Votre message a été envoyé. </div> <? Php endif; ?>
Cela maintient l'utilisateur informé et améliore UX en mettant en évidence les problèmes.

Protéger contre les vulnérabilités communes
Même avec $_POST
, votre formulaire peut être exploité sans précautions.
Vérifiez le CSRF (contrefaçon de demande inter-sites) en utilisant des jetons:
// sur l'affichage du formulaire session_start (); $ _Session ['token'] = bin2hex (random_bytes (32)); // Informer // <input type = "Hidden" name = "token" value = "<? = $ _Session ['token']?>"> // sur la soumission if (! hash_equals ($ _ session ['token'], $ _post ['token'] ?? '')) { $ erreurs [] = 'soumission de formulaire non valide.'; }
Évitez la sortie directe de
$_POST
sans échapper (utilisezhtmlspecialchars
).N'utilisez jamais de données
$_POST
dans les requêtes SQL sans instructions préparées pour empêcher l'injection SQL.
Préserver la saisie de l'utilisateur sur l'erreur (facultatif mais utile)
Pour améliorer la convivialité, repeuplez le formulaire avec des données valides lorsque des erreurs se produisent.
<input type = "text" name = "name" value = "<? = $ data ['name'] ?? ''?>"> <textarea name = "message"> <? = $ data ['message'] ?? ''?> </ textarea> <entrée type = "e-mail" name = "e-mail" value = "<? = $ data ['e-mail'] ?? ''?>">
Cela évite de faire en sorte que les utilisateurs saisissent tout après une faute de frappe.
Un traitement de formulaire robuste avec $_POST
revient à valider les entrées, à gérer les erreurs gracieusement, à donner des commentaires et à se protéger contre les attaques. Faites-les de manière cohérente et vos formulaires seront à la fois sécurisés et conviviaux.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Vérifiez et nettoyez toujours l'entrée $ _POST, utilisez la garniture, filter_input et htmlSpecialChars pour s'assurer que les données sont légales et sécurisées; 2. Fournir des commentaires d'utilisateur clairs, afficher les messages d'erreur ou les invites de réussite en vérifiant le tableau des erreurs $; 3. Empêcher les vulnérabilités communes, utiliser les jetons de session pour empêcher les attaques du CSRF, éviter la sortie non basse et l'injection SQL; 4. conserver les entrées valides soumises par l'utilisateur lorsqu'une erreur se produit pour améliorer l'expérience utilisateur. Suivez ces étapes pour créer un système de traitement de formulaire PHP sûr et fiable qui garantit l'intégrité des données et la convivialité.

isset () seulsInsufficantForsECurephpformHandlingBecauseitlyCheckSexistence, notdatatype, format, orsafet

Si les données $ _POST disparaissent en PHP, la première chose à faire est de vérifier la configuration post_max_size; Ce paramètre définit la quantité maximale de demandes de poste acceptables par PHP. S'il le dépasse, $ _post et $ _files seront vides et il n'y a pas d'invite d'erreur par défaut. Il peut être détecté en vérifiant que request_method est post et $ _post est vide et combiné avec content_length et post_max_size; Il est courant dans un grand nombre de champs d'entrée, de scénarios de téléchargement de fichiers Hidden JSON, de base64 ou de plusieurs scénarios de fichiers; La solution comprend l'augmentation de Post_max_size (comme réglé sur 32m) dans php.ini, tout en garantissant un upload_ma

Utilisez Filter_Input Fonction pour traiter la post-entrée en PHP, car il peut simultanément implémenter l'accès sécurisé et la vérification du filtre, en évitant les risques de XSS et d'injection SQL causés par l'utilisation directe de $ _post; 1. Utilisez filter_sanitize_full_special_chars pour remplacer le filter_sanitize_string obsolète pour l'évasion de caractères spéciaux; 2. Utilisez filter_validate_email et filter_validate_int pour assurer le format de données correct; 3. Les tableaux ou plusieurs champs peuvent être traités par lots via des fonctions d'encapsulation; 4. Faites attention à partir de PHP8.1

Pour traiter les données de téléchargement de fichiers et de formulaire en même temps, vous devez utiliser la méthode Post et définir ENCTYPE = "Multipart / Form-Data"; 1. Assurez-vous que le formulaire HTML contient Method = "Post" et ENCTYPE = "Multipart / Form-Data"; 2. Obtenez des champs de texte tels que le titre et la description via $ _post; 3. Accédez aux informations détaillées des fichiers téléchargés via $ _files; 4. Vérifiez $ _files ['champ'] ['error'] pour s'assurer que le téléchargement est réussi; 5. Vérifiez la taille et le type du fichier pour empêcher le téléchargement illégal; 6. Utiliser m

Générer et stocker des jetons CSRF sécurisés: Utilisez Random_Bytes () pour générer des jetons sécurisés chiffrés et déposer $ _Session au début de la session; 2. Insérez le jeton comme un champ caché dans la forme et sortiz via htmlSpecialCars () pour empêcher les XS; 3. Utilisez hash_equals () dans le script de traitement pour vérifier si le jeton soumis est cohérent avec le jeton stocké dans la session, et si la vérification échoue, il renverra une erreur 403; 4. Le jeton doit être invalidé et régénéré après des opérations sensibles; 5. Transmettre toujours via HTTP

Toujours de la mise en scène de la préparation destinés à la demande detiné destinées auxquels awenHenling $ _PostData.2.validateAndanitizeInputearlyByCkingForreQuiredFields, FilteringData, Tramenglength, AndrejectingUnunexCharing.3

Tobuildarobustrestfulphpapi, donotrelysolelyon $ _post, asitonlypopule withithform-codeddataandnotjson; 2.Checkthecontent-typehea DertOdEtermineIftheInputisJSON, thenreadphp: // inputanddecodeitusingjson_decode; 3.iftheContentTypeisnotjson, Fallbackto $ _postfor
