Maison > Article > développement back-end > Apprentissage des formulaires PHP : utilisation et différence des variables $_GET et $_POST
Dans l'article précédent, je vous ai présenté "Comment vérifier l'e-mail et l'URL du formulaire lors de l'apprentissage des formulaires PHP ?" 》, qui présente en détail les connaissances sur la façon de vérifier les e-mails et les URL dans les formulaires en PHP. Dans cet article, nous examinons les variables $_GET et $_POST en PHP. J'espère que cela aidera tout le monde !
Dans les articles précédents, nous avons appris comment valider les données requises et comment valider les e-mails et les URL dans les formulaires via des expressions régulières. Parmi elles se trouvent la variable $_GET
et la variable $_POST
. Examinons ensuite la variable $_GET
et $. _POST
Connaissance connexe de l'utilisation des variables. $_GET
变量与$_POST
变量的影子,接下来我们就来看一看$_GET
变量与$_POST
变量使用的相关知识。
<span style="font-size: 20px;">PHP $_GET </span>
变量
我们前面在学习的时候已经了解到了 $_GET
变量用于收集来自 method="get"
的表单中的值。从带有 GET 方法的表单发送的信息,对任何人都是可见的(会显示在浏览器的地址栏),并且对发送信息的量也有限制。其实也可以看成是通过 URL 参数传递给当前脚本的变量的数组。
在使用 $_GET 变量时,所有的变量名和值都会显示在 URL 中。所以在发送密码或其他敏感信息时,不应该使用这个方法。不过,正因为变量显示在 URL 中,因此可以在收藏夹中收藏该页面。在某些情况下,这是很有用的。
接下来我们通过示例来看一下:
<html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <form action="demo.php" method="get"> 名字: <input type="text" name="name"><br> 性别:<input type="radio" name="sex" value="男" checked>男 <input type="radio" name="sex" value="女">女<br> 年龄: <input type="text" name="age"><br> <input type="submit" value="提交"> </form> </body> </html>
提交到demo.php的内容为:
<?php header("Content-type:text/html;charset=utf-8"); //设置编码 echo "你的姓名是:" .$_GET['name'] ."<br/>"; echo "你的性别是:" .$_GET['sex']."<br/>"; echo "你的年龄是:".$_GET['age']; ?>
输出结果:
我们发现我们在表单填写的值,都显示在Url栏中。那么我们在什么时候使用 method="get"呢。
在 HTML 表单中使用 method="get"
时,所有的变量名和值都会显示在 URL 中。所以在发送密码或其他敏感信息时,不应该使用这个方法!然而,正因为变量显示在 URL 中,因此可以在收藏夹中收藏该页面。在某些情况下,这是很有用的。
其中需要注意的是:HTTP GET 方法不适合大型的变量值。它的值是不能超过 2000 个字符的。
<strong><span style="font-size: 20px;">$_POST</span></strong>
变量
在上述示例中我们讲到了$_GET
变量,接下来我们就来看一下$_POST
变量,预定义的 $_POST
变量用于收集来自 method="post"
的表单中的值。
从带有 POST 方法的表单发送的信息,对任何人都是不可见的也不会像$_GET
变量一样显示在浏览器的地址栏,并且对发送信息的量也没有限制。然而,默认情况下,POST 方法的发送信息的量最大值为 8 MB,可以通过设置 php.ini
文件中的 post_max_size
进行更改。
接下来我们通过示例来看一下:
<html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <form action="demo.php" method="post"> 名字: <input type="text" name="name"><br> 性别:<input type="radio" name="sex" value="男" checked>男 <input type="radio" name="sex" value="女">女<br> 年龄: <input type="text" name="age"><br> <input type="submit" value="提交"> </form> </body> </html>
其中提交到demo.php的内容为:
<?php header("Content-type:text/html;charset=utf-8"); //设置编码 echo "你的姓名是:" .$_POST['name'] ."<br/>"; echo "你的性别是:" .$_POST['sex']."<br/>"; echo "你的年龄是:".$_POST['age']; ?>
输出结果:
其中我们看到,我们用POST提交的信息,没有在Url 栏中显示,所以,POST 比GET 要更为安全一点。下面我们来总结一下$_GET与$_POST的区别。
<strong><span style="font-size: 20px;">$_GET</span></strong>
与$_POST
的区别
get
是从服务器上获取数据,post
<span style="font-size: 20px;">PHP $_GET </span>
Variable Nous avons déjà appris que la variable $_GET
est utilisée pour collecter des valeurs sous la forme de method="get"
. Les informations envoyées à partir d'un formulaire avec la méthode GET sont visibles par tous (affichées dans la barre d'adresse du navigateur) et il existe des limites à la quantité d'informations envoyées. En fait, il peut également être considéré comme un tableau de variables transmises au script actuel via des paramètres d'URL. Lors de l'utilisation de variables $_GET, tous les noms et valeurs de variables seront affichés dans l'URL. Cette méthode ne doit donc pas être utilisée lors de l’envoi de mots de passe ou d’autres informations sensibles. Cependant, comme les variables apparaissent dans l'URL, vous pouvez ajouter la page à vos favoris. Dans certains cas, cela est utile. Jetons ensuite un coup d'œil à un exemple : rrreee
Le contenu soumis à demo.php est :rrreee
Le résultat de sortie :method="get"
dans un formulaire HTML, tous les noms et valeurs de variables seront affichés dans l'URL. Vous ne devez donc pas utiliser cette méthode lors de l’envoi de mots de passe ou d’autres informations sensibles ! Cependant, comme les variables apparaissent dans l'URL, vous pouvez ajouter la page à vos favoris. Dans certains cas, cela est utile. 🎜🎜Il est à noter que la méthode HTTP GET n'est pas adaptée aux grandes valeurs de variables. Sa valeur ne peut pas dépasser 2000 caractères. 🎜🎜<strong><span style="max-width:90%">$_POST</span></strong>
Variables🎜🎜Dans l'exemple ci-dessus, nous avons parlé de la variable $_GET
, jetons un œil à la variable $_POST
, prédéfinie. La variable $_POST
est utilisée pour collecter les valeurs du formulaire dans le method="post"
. 🎜🎜Les informations envoyées depuis le formulaire avec la méthode POST ne sont visibles par personne et ne seront pas affichées dans la barre d'adresse du navigateur comme la variable $_GET
, et n'ont aucune influence sur la quantité d'informations envoyées . Il n’y a pas non plus de limites. Cependant, par défaut, la quantité maximale d'informations envoyées par la méthode POST est de 8 Mo, ce qui peut être modifié en définissant post_max_size
dans le fichier php.ini
. 🎜🎜Jetons ensuite un coup d'œil à un exemple :<strong><span style="max-width:90%">$_GET</span></strong>
La différence avec $_POST
🎜🎜get
est d'obtenir des données du serveur, et post
est de transmettre au serveur les données. 🎜🎜get ajoute la file d'attente de données de paramètres à l'URL pointée par l'attribut ACTION du formulaire soumis. Les valeurs correspondent à chaque champ du formulaire un à un et peuvent être vues dans l'URL. Post utilise le mécanisme de publication HTTP pour placer chaque champ du formulaire et son contenu dans l'EN-TÊTE HTML et le transmettre à l'adresse URL pointée par l'attribut ACTION. Les utilisateurs ne peuvent pas voir ce processus. 🎜🎜Pour la méthode get, le côté serveur utilise Request.QueryString pour obtenir la valeur de la variable. Pour la méthode post, le côté serveur utilise Request.Form pour obtenir les données soumises. 🎜🎜La quantité de données transférées par get est faible et ne peut pas dépasser 2 Ko. La quantité de données transmises par courrier est relativement importante et est généralement illimitée par défaut. Mais en théorie, la quantité maximale est de 80 Ko dans IIS4 et de 100 Ko dans IIS5. 🎜🎜 la sécurité d'obtention est très faible, la sécurité de poste est élevée. Mais l'efficacité d'exécution est meilleure que la méthode Post. 🎜🎜Les différences entre les deux sont organisées dans un tableau. Le tableau est le suivant : 🎜$_GET | $_POST | |
---|---|---|
Affichage dans l'URL | Il y aura une limite sur le nombre de caractères affichés dans l'URL |
Ne seront pas affichés dans l'URL |
Données soumises En termes de volume | est généralement une petite quantité de données inférieure à 2k | PHP peut soumettre une grande quantité de données 8M par défaut |
En termes de sécurité | n'est pas sûr | est relativement sûr |
principe de soumission | Il est isolé | Soumettre les données dans leur ensemble |
Flexibilité | Très flexible, les données peuvent être transférées avec saut de page | Inflexible, doit avoir la participation du formulaire |
Utilisation courante | Plus couramment utilisée | est moins courante que $_GET |
Grâce à la différence, nous pouvons conclure :
La sécurité de la méthode get est pire que celle de la méthode Post si confidentielle. les informations sont incluses, il est recommandé d'utiliser la méthode de soumission de données Post ;
Lors de la requête de données, il est recommandé d'utiliser la méthode Get lors de l'ajout, de la modification ou de la suppression de données, il est recommandé d'utiliser la méthode Post ;
Si vous êtes intéressé, vous pouvez cliquer sur "Tutoriel vidéo PHP" Pour en savoir plus sur PHP.
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!