Maison  >  Article  >  développement back-end  >  Comment implémenter les paramètres jump et pass dans l'en-tête php

Comment implémenter les paramètres jump et pass dans l'en-tête php

PHPz
PHPzoriginal
2023-03-31 10:05:521344parcourir

Lorsque nous utilisons PHP pour développer des applications Web, nous utilisons souvent la fonction d'en-tête de PHP pour accéder aux pages et transférer les paramètres. Il est très simple d'accéder à une page. Il vous suffit d'ajouter l'instruction suivante au code PHP :

header('Location: http://www.example.com');

De cette façon, le navigateur passera automatiquement à la page http://www.example.com, pour que nous pouvons guider l'utilisateur vers la page sur laquelle nous voulons réaliser un saut de page.

Mais que se passe-t-il si l'on veut transmettre certains paramètres en même temps lors d'un saut ? Cela nécessite l'utilisation des méthodes GET et POST dans le protocole HTTP.

Lors de la transmission des paramètres, nous pouvons utiliser la méthode GET pour ajouter les paramètres à l'URL, ou nous pouvons transmettre les paramètres au serveur via la méthode POST.

La méthode de transmission des paramètres via la méthode GET est la suivante :

header('Location: http://www.example.com?param1=value1&param2=value2');

Ajoutez le signe ? après l'URL, puis utilisez le symbole & pour séparer plusieurs paramètres. Chaque paramètre peut être transmis sous la forme clé=valeur. Par exemple, dans le code ci-dessus, nous avons ajouté deux paramètres : param1 et param2, auxquels sont respectivement attribuées les valeurs​​1 et value2.

La méthode de transmission des paramètres via la méthode POST est la suivante :

$params = array('param1' => 'value1', 'param2' => 'value2');
header('Location: http://www.example.com', true, 307);
echo "<form id=&#39;postForm&#39; action=&#39;http://www.example.com&#39; method=&#39;post&#39;>";
foreach ($params as $key => $value) {
    echo "<input type=&#39;hidden&#39; name=&#39;$key&#39; value=&#39;$value&#39; />";
}
echo "</form>";
echo "<script>document.getElementById('postForm').submit();</script>";

Cette méthode est plus compliquée et doit être implémentée via un formulaire HTML, mais davantage de contenu et de valeurs de paramètres peuvent être transmis. Dans cette méthode, nous définissons d'abord un tableau $params pour stocker les paramètres qui doivent être transmis, puis soumettons ces paramètres à l'adresse cible via le formulaire HTML pour terminer le transfert des paramètres. Il convient de noter que nous devons définir le deuxième paramètre (true) dans la fonction d'en-tête pour garantir que le code d'état renvoie correctement 307. Ce code d'état est une redirection temporaire, qui indique que la requête en cours est une requête POST et que le client doit être redirigé vers une nouvelle adresse.

Bien sûr, nous pouvons également transmettre des paramètres plus complexes, comme transmettre un tableau ou un objet. À ce stade, nous devons sérialiser les paramètres, puis les transmettre. Par exemple :

$data = array('name' => 'Tom', 'age' => 20);
$params = http_build_query(array('data' => serialize($data)));

header('Location: http://www.example.com?' . $params);

Dans ce code, nous utilisons d'abord la fonction de sérialisation sérialiser pour convertir le tableau $data en une chaîne, puis utilisons la fonction http_build_query pour encoder la chaîne et l'insérer dans l'URL pour terminer le transfert des paramètres. Dans l'URL cible, il suffit d'utiliser la chaîne de requête pour lire les paramètres puis les désérialiser.

En bref, la fonction d'en-tête de PHP nous offre des fonctions de saut de page et de passage de paramètres très pratiques. Il nous suffit d'ajouter les paramètres nécessaires dans le code PHP pour implémenter des applications Web efficaces.

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