Maison  >  Article  >  développement back-end  >  Comment empêcher le formulaire d'être effacé après la soumission en php

Comment empêcher le formulaire d'être effacé après la soumission en php

藏色散人
藏色散人original
2020-11-17 09:57:492507parcourir

La méthode d'implémentation pour ne pas effacer le formulaire PHP après la soumission : ouvrez d'abord le fichier de code correspondant ; puis après "session_start()", écrivez l'instruction "header("Cache-control: private"); avant le sortie de caractère ; "C'est tout.

Comment empêcher le formulaire d'être effacé après la soumission en php

Recommandé : "Tutoriel vidéo PHP"

Le formulaire php est renvoyé après soumission, mais le le contenu du formulaire n'est pas effacé Solution

Nous remplissons souvent de nombreuses informations recommandées lors de l'inscription, puis soumettons l'inscription. Parce que l'une des informations est incorrecte, tout le contenu précédemment rempli disparaît lorsque. nous revenons. , cela fera perdre à l'utilisateur les informations à remplir à nouveau, ce qui affectera l'expérience utilisateur et entraînera la perte d'utilisateurs. Alors, comment résoudre ce problème ?

La solution est d'écrire l'en-tête ("Cache-control: private") après session_start() et avant la sortie du caractère

Le cache de la page Web est déterminé par le "Cache-control ; " dans l'en-tête du message HTTP. contrôle". Les valeurs courantes incluent private, no-cache, max-age, must-revalidate, etc. La valeur par défaut est privée. Sa fonction est répartie dans les situations suivantes selon différentes méthodes de re-navigation :

(1) Ouvrir une nouvelle fenêtre

La valeur est privée, sans cache, doit être revalidée, puis ouverte une nouvelle fenêtre à visiter Le serveur sera à nouveau consulté à chaque fois.

Et si la valeur max-age est spécifiée, le serveur ne sera plus accessible dans cette valeur, par exemple :

Cache-control : max-age=5 (ce qui signifie que lors de l'accès cette page Web dans les 5 secondes ne sera pas envoyée au serveur)

(2) Appuyez sur Entrée dans la barre d'adresse

Si la valeur est privée ou doit être revalidée, elle ne sera accessible que pour Accédez au serveur pour la première fois et n'y accédez plus jamais.

La valeur est sans cache, elle sera alors accessible à chaque fois.

La valeur est max-age, elle ne sera donc plus accessible avant l'expiration.

(3) Appuyez sur le bouton retour

Si la valeur de

est privée, doit être revalidée, âge maximum, elle ne sera plus accessible, si la valeur de

n'est pas sans cache, alors

sera consulté à plusieurs reprises à chaque fois (4) Appuyez sur le bouton d'actualisation

Quelle que soit la valeur, il sera consulté à plusieurs reprises

Lorsque la valeur du contrôle du cache est "no-cache", l'accès à cette page ne laissera pas de sauvegarde de page dans le dossier temporaire des articles Internet.

De plus, la mise en cache peut également être affectée en spécifiant la valeur « Expire ». Par exemple, si vous spécifiez la valeur Expire comme une heure déjà écoulée, alors si vous appuyez plusieurs fois sur Entrée dans la barre d'adresse lors de l'accès à ce site Web, l'accès sera répété à chaque fois : Expire : vendredi 31 décembre 1999 16:00 :00 GMT

Par exemple : désactiver la mise en cache des pages dans IE

paramètre d'en-tête du message de réponse http :

CacheControl = no-cache
Pragma=no-cache
Expires = -1

Expire est une bonne chose si les pages Web sur le serveur changent. fréquemment, réglez-le sur - 1, indiquant une expiration immédiate. Si une page Web est mise à jour à 1 heure du matin tous les jours, vous pouvez définir l'expiration à 1 heure du matin le lendemain.

Lorsque le serveur HTTP1.1 spécifie CacheControl = no-cache, le navigateur ne mettra pas en cache la page Web.

Les anciens serveurs HTTP 1.0 ne peuvent pas utiliser l'en-tête Cache-Control.

Ainsi, afin d'être rétrocompatible avec les serveurs HTTP 1.0, IE fournit un support spécial pour HTTP en utilisant l'en-tête Pragma:no-cache.

Si le client communique avec le serveur via une connexion sécurisée (https://) et que le serveur renvoie l'en-tête Pragma:no-cache dans la réponse,

Internet Explorer ne mettra pas en cache le réponse. Remarque : Pragma:no-cache empêche uniquement la mise en cache lorsqu'il est utilisé dans une connexion sécurisée. Si elle est utilisée dans une page non sécurisée, la gestion est la même que pour Expires :-1. La page sera mise en cache mais marquée comme expirée immédiatement.

Description du champ d'en-tête du message Cache-Control

Cache-Control spécifie le mécanisme de mise en cache suivi des requêtes et des réponses. La définition de

Cache-Control dans un message de demande ou un message de réponse ne modifie pas le processus de traitement du cache dans un autre processus de traitement de message. Les instructions de cache lors de la requête incluent no-cache, no-store, max-age, max-stale, min-fresh, only-if-cached, et les instructions contenues dans le message de réponse incluent public, private, no-cache, no -store, no-transform, must-revalidate, proxy-revalidate, max-age. La signification des instructions dans chaque message est la suivante :

Public indique que la réponse peut être mise en cache par n'importe quelle zone de cache.

Privé indique que tout ou partie du message de réponse d'un seul utilisateur ne peut pas être traité par le cache partagé. Cela permet au serveur de décrire uniquement une réponse partielle d'un utilisateur qui n'est pas valide pour les demandes des autres utilisateurs.

no-cache indique que le message de demande ou de réponse ne peut pas être mis en cache.

no-store est utilisé pour empêcher la divulgation involontaire d'informations importantes. L'envoyer dans le message de demande entraînera l'utilisation de la mise en cache par les messages de demande et de réponse.

max-age indique que le client peut recevoir des réponses avec une durée de vie ne dépassant pas le temps spécifié en secondes.

min-fresh indique que le client peut recevoir des réponses avec un temps de réponse inférieur à l'heure actuelle plus l'heure spécifiée.

max-stale indique que le client peut recevoir des messages de réponse au-delà du délai d'attente. Si vous spécifiez une valeur pour les messages périmés au maximum, le client peut recevoir des messages de réponse qui dépassent la valeur spécifiée du délai d'expiration.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn