193 votes

Php $_REQUEST vs $_GET et $_POST

Pouvez vous me guider s’il vous plaît du code ci-dessous sera plus efficace et rapide.

OU

297voto

Pascal MARTIN Points 195780

$_REQUEST, par défaut, contient le contenu de $_GET, $_POST et $_COOKIE.

Mais c'est seulement un défaut, qui dépend de l' variables_order ; et pas sûr que vous voulez travailler avec des cookies.

Si j'avais à choisir, je n'aurais probablement pas utiliser $_REQUEST, et je choisirais $_GET ou $_POST -- selon ce que mon application devrait le faire (c'est à dire l'un ou l'autre, mais pas les deux) : d'une manière générale :

  • Vous devez utiliser $_GET quand quelqu'un demande des données à partir de votre application.
  • Et vous devez utiliser $_POST quand quelqu'un pousse (insertion ou mise à jour ; ou la suppression) des données de votre application.

De toute façon, il n'y aura pas beaucoup de différence sur les performances : la différence sera négligeable, comparé à ce que le reste de votre script va faire.

33voto

Zee Ken Points 42

OBTENEZ vs POST

1) les Deux GET et POST créer un tableau (par exemple, array( clé => valeur, key2 => valeur2, key3 => valeur3, ...)). Ce tableau contient des paires clé/valeur, où les clés sont les noms des contrôles de formulaire et les valeurs sont les données d'entrée de l'utilisateur.

2) les Deux GET et POST sont traités comme des variables $_GET et $_POST. Ce sont les superglobales, ce qui signifie qu'ils sont toujours accessibles, quelle que soit la portée - et vous pouvez y accéder à partir de n'importe quelle fonction, de classe ou d'un fichier sans avoir à faire quelque chose de spécial.

3) $_GET est un tableau de variables passées au script courant via les paramètres de l'URL.

4) $_POST est un tableau de variables passées au script courant via la méthode HTTP POST.

Lors de l'utilisation de l'OBTENIR?

Les informations envoyées à partir d'un formulaire avec la méthode GET est visible par tout le monde (tous les noms de variables et les valeurs sont affichées dans l'URL). OBTENIR a également des limites sur la quantité de données à envoyer. La limitation est d'environ 2000 caractères. Cependant, parce que les variables sont affichés dans l'URL, il est possible de créer un signet de la page. Cela peut être utile dans certains cas.

OBTENIR peut être utilisé pour l'envoi de données non sensibles.

Note: OBTENIR ne doit JAMAIS être utilisé pour l'envoi de mots de passe ou d'autres informations sensibles!

Lors de l'utilisation de la POSTE?

Les informations envoyées à partir d'un formulaire avec la méthode POST est invisible pour les autres (tous les noms/valeurs sont intégrés dans le corps de la requête HTTP) et n'a pas de limites sur la quantité d'informations à envoyer.

En outre POSTE prend en charge des fonctionnalités avancées telles que le support du multi-partie de l'entrée binaire tout en téléchargeant des fichiers vers le serveur.

Cependant, parce que les variables ne sont pas affichés dans l'URL, il n'est pas possible de créer un signet de la page.

27voto

gewel Points 61

$ _GET récupère les variables de la chaîne de requête ou de votre URL.>

$ _POST récupère les variables d'une méthode POST, telles que (généralement) les formulaires.

$ _REQUEST est une fusion de $ _GET et de $ _POST où $ _POST remplace $ _GET. Bon d'utiliser $ _REQUEST sur des formulaires auto-apprenants pour les validations.

18voto

Daniel Bruce Points 3413

Je suggère d'utiliser explicitement $ _POST et $ _GET.

L'utilisation de $ _REQUEST devrait être inutile avec une conception de site appropriée, et elle s'accompagne de quelques inconvénients, tels que vous permettre de vous attaquer plus facilement aux attaques CSRF / XSS et d'autres problèmes liés au stockage de données dans l'URL.

La différence de vitesse devrait être minime dans les deux cas.

8voto

Steven Schlansker Points 17463

Utilisez REQUEST. Personne ne se soucie de la rapidité d'une opération aussi simple, et son code est beaucoup plus propre.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X