Que se passe-t-il si vous accédez à une URL de style GET avec une demande POST?

StackOverflow https://stackoverflow.com/questions/421378

  •  05-07-2019
  •  | 
  •  

Question

Supposons que j'ai une page appelée display.php et que l'utilisateur visualise display.php? page = 3 . Je souhaite autoriser l'utilisateur à effectuer une action telle que voter via une demande POST, puis à le ramener à la page où il se trouvait. Donc, si je fais une demande POST à ?? display.php? Page = 3 , les informations de page seront-elles également disponibles pour le script?

Était-ce utile?

La solution

La réponse simple est "oui". Vous pouvez utiliser une URL de style GET en tant qu'URL de soumission pour un formulaire POST. PHP disposera des informations POST et GET de la manière habituelle lors de l'envoi du formulaire.

Cela ne veut pas dire que vous devriez le faire, mais que cela fonctionnera.

Autres conseils

En PHP, vous pouvez obtenir des variables de requête à partir des tableaux globaux spéciaux:

En PHP, vous pouvez obtenir des variables de requête à partir des tableaux globaux spéciaux:

<?php
//vote.php
$page_number = (int)

En PHP, vous pouvez obtenir des variables de requête à partir des tableaux globaux spéciaux:

En PHP, vous pouvez obtenir des variables de requête à partir des tableaux globaux spéciaux:

<*>

On dirait que vous recherchez "Rediriger après le message", je vous suggère de séparer display.php et vote.php en fichiers séparés. Vote ressemble à ceci:

<*>

Notez que le fait d'accepter aveuglément des données de formulaire non authentifiées peut être dangereux pour votre application.

Modifier: Certaines personnes considèrent qu'il est mauvais d'utiliser $ _REQUEST pour gérer les deux cas. Le risque est que vous souhaitiez signaler une erreur si vous recevez un message GET alors que vous vous attendez à un POST. En règle générale, GET est réservé à l'affichage et POST à ??la modification (opérations de création / mise à jour / suppression). Que cela soit vraiment un problème dépend de votre application.

GET['page'] (for GET requests)

En PHP, vous pouvez obtenir des variables de requête à partir des tableaux globaux spéciaux:

<*>

On dirait que vous recherchez "Rediriger après le message", je vous suggère de séparer display.php et vote.php en fichiers séparés. Vote ressemble à ceci:

<*>

Notez que le fait d'accepter aveuglément des données de formulaire non authentifiées peut être dangereux pour votre application.

Modifier: Certaines personnes considèrent qu'il est mauvais d'utiliser $ _REQUEST pour gérer les deux cas. Le risque est que vous souhaitiez signaler une erreur si vous recevez un message GET alors que vous vous attendez à un POST. En règle générale, GET est réservé à l'affichage et POST à ??la modification (opérations de création / mise à jour / suppression). Que cela soit vraiment un problème dépend de votre application.

POST['page'] (for POST requests)

En PHP, vous pouvez obtenir des variables de requête à partir des tableaux globaux spéciaux:

<*>

On dirait que vous recherchez "Rediriger après le message", je vous suggère de séparer display.php et vote.php en fichiers séparés. Vote ressemble à ceci:

<*>

Notez que le fait d'accepter aveuglément des données de formulaire non authentifiées peut être dangereux pour votre application.

Modifier: Certaines personnes considèrent qu'il est mauvais d'utiliser $ _REQUEST pour gérer les deux cas. Le risque est que vous souhaitiez signaler une erreur si vous recevez un message GET alors que vous vous attendez à un POST. En règle générale, GET est réservé à l'affichage et POST à ??la modification (opérations de création / mise à jour / suppression). Que cela soit vraiment un problème dépend de votre application.

REQUEST['page'] (for either)

On dirait que vous recherchez "Rediriger après le message", je vous suggère de séparer display.php et vote.php en fichiers séparés. Vote ressemble à ceci:

<*>

Notez que le fait d'accepter aveuglément des données de formulaire non authentifiées peut être dangereux pour votre application.

Modifier: Certaines personnes considèrent qu'il est mauvais d'utiliser $ _REQUEST pour gérer les deux cas. Le risque est que vous souhaitiez signaler une erreur si vous recevez un message GET alors que vous vous attendez à un POST. En règle générale, GET est réservé à l'affichage et POST à ??la modification (opérations de création / mise à jour / suppression). Que cela soit vraiment un problème dépend de votre application.

REQUEST['page']; vote_for_page($page_number); //your voting logic header('Location: display.php?page=' . $page_number); //return to display.php

On dirait que vous recherchez "Rediriger après le message", je vous suggère de séparer display.php et vote.php en fichiers séparés. Vote ressemble à ceci:

<*>

Notez que le fait d'accepter aveuglément des données de formulaire non authentifiées peut être dangereux pour votre application.

Modifier: Certaines personnes considèrent qu'il est mauvais d'utiliser $ _REQUEST pour gérer les deux cas. Le risque est que vous souhaitiez signaler une erreur si vous recevez un message GET alors que vous vous attendez à un POST. En règle générale, GET est réservé à l'affichage et POST à ??la modification (opérations de création / mise à jour / suppression). Que cela soit vraiment un problème dépend de votre application.

GET['page'] (for GET requests)

En PHP, vous pouvez obtenir des variables de requête à partir des tableaux globaux spéciaux:

<*>

On dirait que vous recherchez "Rediriger après le message", je vous suggère de séparer display.php et vote.php en fichiers séparés. Vote ressemble à ceci:

<*>

Notez que le fait d'accepter aveuglément des données de formulaire non authentifiées peut être dangereux pour votre application.

Modifier: Certaines personnes considèrent qu'il est mauvais d'utiliser $ _REQUEST pour gérer les deux cas. Le risque est que vous souhaitiez signaler une erreur si vous recevez un message GET alors que vous vous attendez à un POST. En règle générale, GET est réservé à l'affichage et POST à ??la modification (opérations de création / mise à jour / suppression). Que cela soit vraiment un problème dépend de votre application.

POST['page'] (for POST requests)

En PHP, vous pouvez obtenir des variables de requête à partir des tableaux globaux spéciaux:

<*>

On dirait que vous recherchez "Rediriger après le message", je vous suggère de séparer display.php et vote.php en fichiers séparés. Vote ressemble à ceci:

<*>

Notez que le fait d'accepter aveuglément des données de formulaire non authentifiées peut être dangereux pour votre application.

Modifier: Certaines personnes considèrent qu'il est mauvais d'utiliser $ _REQUEST pour gérer les deux cas. Le risque est que vous souhaitiez signaler une erreur si vous recevez un message GET alors que vous vous attendez à un POST. En règle générale, GET est réservé à l'affichage et POST à ??la modification (opérations de création / mise à jour / suppression). Que cela soit vraiment un problème dépend de votre application.

REQUEST['page'] (for either)

On dirait que vous recherchez "Rediriger après le message", je vous suggère de séparer display.php et vote.php en fichiers séparés. Vote ressemble à ceci:

<*>

Notez que le fait d'accepter aveuglément des données de formulaire non authentifiées peut être dangereux pour votre application.

Modifier: Certaines personnes considèrent qu'il est mauvais d'utiliser $ _REQUEST pour gérer les deux cas. Le risque est que vous souhaitiez signaler une erreur si vous recevez un message GET alors que vous vous attendez à un POST. En règle générale, GET est réservé à l'affichage et POST à ??la modification (opérations de création / mise à jour / suppression). Que cela soit vraiment un problème dépend de votre application.

Oui, le tableau GET est toujours rempli avec les paramètres d'URL, quelle que soit la méthode de requête. Vous pouvez l'essayer avec une simple page comme celle-ci:

<form action="test.php?a=b" method="post">
    <input name="a"/>
    <input type="submit"/>
</form>
<pre>
POST:
<?php print_r(

Oui, le tableau GET est toujours rempli avec les paramètres d'URL, quelle que soit la méthode de requête. Vous pouvez l'essayer avec une simple page comme celle-ci:

<*>POST); ?> GET: <?php print_r(

Oui, le tableau GET est toujours rempli avec les paramètres d'URL, quelle que soit la méthode de requête. Vous pouvez l'essayer avec une simple page comme celle-ci:

<*>GET); ?> </pre>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top