2010-08-14 3 views
3

Je n'ai pas officiellement commencé à apprendre PHP, juste en parcourant quelques tutoriels et j'ai une question. Pourquoi quelqu'un choisirait-il d'utiliser Get vs Post? Pourquoi voudriez-vous jamais les données affichées dans la barre d'URL? Je comprends poste est utilisé pour les mots de passe et les informations importantes, mais je ne comprends pas pourquoi vous utiliseriez obtenir au lieu de simplement poster tout le temps?

Merci pour tout commentaire.

+1

double: http://stackoverflow.com/questions/46585/when-do-you-use-post-and-when-do-you -use-get – jasonbar

Répondre

17

Si vous voulez que les gens puissent partager le lien avec leurs amis ... pour exemple http://example.com/products.php?product_id=12

+0

Oh a du sens .. Je pense que je comprends. – user377419

+0

+1 Battez-moi = = –

+1

Pourquoi la downvote? C'était une réponse complètement valide. –

28

$_GET est utile pour les pages où les utilisateurs demandent des données - comme une page de recherche et les pages qu'un utilisateur peut vouloir mettre en signet et partager avec d'autres. Actions devant être en lecture seule.

$_POST est utile pour les pages sur lesquelles les utilisateurs postent des données, par exemple un formulaire d'inscription. $_POST doit être utilisé lorsque vous ne voulez que vos visiteurs soient en mesure de marquer une page. Actions qui écrivent des données.

Comme prodigitalson ajouté: vous pouvez utiliser $_POST ou $_GET pour toute opération, mais il est conseillé de les utiliser comme décrit ci-dessus.

+3

'+ 1' pour une bonne réponse. –

+3

J'ajouterais qu'il est également utile de considérer 'GET' comme des opérations en lecture seule, où' POST' est en lecture/écriture. Ce n'est pas une limitation inhérente à 'GET' /' POST' mais plutôt une bonne pratique à suivre. – prodigitalson

+0

Bon ajout, ajouté. –

0

Quelques fois, vous devez passer params (données) à un script sans forme soumettre ou que vous souhaitez partager ce script à quelqu'un. Dans ce cas, $ _GET est utile. La méthode GET peut générer de longues URL et même dépasser certaines limites de navigateur et de serveur sur la longueur de l'URL.

+0

Ne répond pas à la question. –

10

GET Les requêtes sont idempotentes. POST Les demandes changent l'état du serveur.

Ceci est une question HTTP, pas une question PHP.

3

avez-vous l'intention de remplir votre site web avec des formes et des boutons sur chaque lien? chaque lien que vous voyez dans ce site envoie des variables GET .. peut-être votre question est liée à l'attribut "method" dans un formulaire, si c'est le cas, bien 90% des cas post est un meilleur choix ne vous préoccupez pas de la sécurité :) juste parce que vous ne voyez pas les informations contenues dans la barre de navigation ne signifie pas que sa garantie, en regardant les informations envoyées par la poste est à seulement deux clics de souris;)

+0

Le problème est principalement lié à l'historique du navigateur/à l'état du navigateur. En utilisant '$ _POST' vous empêchez l'exposition de données lorsque des liens sont envoyés dans des e-mails (etc.) ou enregistrés dans l'historique du navigateur, ainsi' $ _POST' est limité à la session d'un navigateur individuel. – cbednarski

+0

Oui .. Je suis totalement d'accord, si nous parlons d'informations envoyées en utilisant un formulaire, mais pour les liens est totalement différent. La question était "pourquoi vous utiliseriez obtenir au lieu de juste poster tout le temps?" .. parce que vous ne pouvez pas remplacer les liens avec des formes :) (et certains navigateurs enregistrent également les informations envoyées par les formulaires pour l'autocomplétion) – pleasedontbelong

0

GET peut être utilisé pour des raisons se multiplient .. Si vous voulez partager une URL avec votre ami, comme http://site.com/share.php?id=123 < - Souvent utilisé.

Il est souvent utilisé pour effectuer des actions dynamiques.

Le test POST est souvent utilisé lorsque les informations sensitives ne doivent pas être partagées.

Vous pouvez chercher sur Google pour en savoir plus =)