7
votes

Combien de temps un argument d'interrogation d'URL peut-il être?

http://site.com/?status=4387hg843hg89473gh87934h89g734hg8973hg9873hg8973h4987g3h489g7h89h849g5

Quelle est la taille maximale de l'état que php peut lire?

Je veux passer des messages d'erreur / de réussite lors de la connexion ou de l'inscription, et la seule façon dont je peux le faire est En redirige vers une URL et appendez les messages comme des arguments sur cette URL.

J'aime: xxx

(Si vous connaissez différentes façons de faire cela s'il vous plaît dites moi;)


0 commentaires

3 Réponses :


1
votes

Ceci est plus dépendant du navigateur de l'utilisateur que toute autre chose. Par exemple, Internet Explorer ne prend pas en charge les URL ayant plus de 2083 caractères. PHP devrait être une bonne manipulation jusqu'à (et bien passé) qui limite. Éviter base64_encode (ce qui est inutile) aidera. Utilisez urlencode à la place (en supposant que vous n'agissez pas de données binaires).

Je suis sûr que les gens aimeraient aider à différentes manières de le faire, mais que vous devriez fournir plus de code.


2 commentaires

Je me souviens de retour dans la journée IE4 (ou c'était-ce ie5 ou IE6? Ou Netscape Navigator 3? Je deviens vieux ...) ne prendrait que 256 caractères dans la chaîne de requête. Bons moments en effet.


Hmm, semble familier. Je ne peux pas dire que je me souviens de quel navigateur.



1
votes

Ma suggestion est d'utiliser POST HTTP au lieu de HTTP GET


2 commentaires

J'y ai pensé, mais comment puis-je envoyer $ _ post ?


Si c'est un formulaire, ajoutez méthody = "post" dans la balise étiquette.



9
votes

Selon RFC2616 Section 3.2.1 :

Le protocole HTTP ne place aucun Limite prioriale sur la longueur d'une URI. Les serveurs doivent pouvoir gérer l'URI de toute ressource qu'ils servent et devraient être capable de gérer les URI de sans bornes longueur si elles fournissent des formes à base de get cela pourrait générer de telles uris. UNE Le serveur devrait renvoyer 414 (demande-uri Trop long) Statut si une URI est plus longue que le serveur peut gérer (voir Section 10.4.15).

avec cela dit, de nombreux navigateurs n'autorisent pas les URL de longueur infinie. Par exemple, Internet Explorer a un limite de 2 083 caractères .

Dans votre cas, je suggérerais Utilisation d'une variable de session pour stocker l'erreur et une fois qu'il a été affiché, supprimez-le.

Le fichier qui produit les erreurs: xxx < p> l'autre page: xxx


2 commentaires

Je crois que lorsque vous avez dit infini, vous vouliez dire fini.


@Michael Mior - En fait, j'ai reformulé que plus tôt et que je voulais dire qu'il lira "ne pas permettre". Merci d'avoir attrapé ça. Je vais mettre à jour la réponse.