Maison > Article > développement back-end > Quelles sont les différences entre les méthodes de soumission de pages php ?
Il existe deux manières de soumettre les données d'une page PHP : get et post. Les différences sont : 1. Pour la soumission get, vous pouvez voir les paramètres sur l'adresse URL, mais pour la soumission post, vous ne pouvez pas voir les paramètres dans la barre d'adresse. ; 2. Get n'est pas sécurisé et la publication est sécurisée ; 3. La soumission Get consiste à soumettre les paramètres un par un, et la post-soumission consiste à soumettre tous les paramètres ensemble dans leur ensemble 4. La soumission Get ne dépasse généralement pas 255 octets ; la taille de la soumission de la publication dépend du serveur ; 5. Get est très flexible, tant qu'il y a des paramètres qui peuvent être transmis lorsque la page saute, mais la publication n'est pas flexible.
L'environnement d'exploitation de ce tutoriel : système Windows7, version PHP8, ordinateur DELL G3
Dans la page php, il existe deux façons de soumettre des données : la méthode get et la méthode post.
<form method="post" action=""></form> <form method="get" action=""></form>
La différence entre la méthode get et la méthode post
1 Apparence
Vous pouvez voir les paramètres dans l'adresse lors de la soumission de la méthode get
Vous ne pouvez pas voir le paramètres dans la barre d'adresse lors de la soumission du message
2. Sécurité
get n'est pas sécurisé, le post est sécurisé
Les données soumises par get peuvent être vues dans la barre d'URL, mais les données soumises par post est invisible, donc la publication est plus sécurisée.
3. Le principe de la soumission
obtenir la soumission consiste à soumettre les paramètres un par un
post-soumission consiste à soumettre tous les paramètres ensemble dans leur ensemble
4 La taille des données de soumission
obtenir la soumission ne dépasse généralement pas 255. octets
La taille de la soumission de la publication dépend du serveur
// 在php.ini中,可以配置post提交的大小 post_max_size = 8M
5 Flexibilité
get est très flexible, tant qu'il y a un saut de page, vous pouvez transmettre des paramètres
la publication n'est pas flexible, la soumission de la publication nécessite. la participation d'un formulaire
1、 html跳转 <a>跳转</a> 2、JS跳转 <script> location.href=&#39;index.php?name=tom&age=20&#39;; location.assign(&#39;index.php?name=tom&age=20&#39;); location.replace(&#39;index.php?name=tom&age=20&#39;); </script> 3、PHP跳转 header('location:index.php?name=tom&age=22')
Résumé :
GET | POST | |
---|---|---|
Apparence | Vous pouvez voir les paramètres et les valeurs transmises dans l'adresse | Aucune donnée peut être vu dans la barre d'adresse |
Taille des données de soumission | Soumettez une petite quantité de données, la valeur maximale est différente selon les navigateurs, IE est de 255 caractères | Soumettez une grande quantité de données, vous pouvez définir le maximum valeur des données de soumission de publication en modifiant le fichier de configuration php.ini |
Sécurité | Faible | Élevée |
Principe de soumission | Les données soumises et les données sont indépendantes | Convertir les données soumises au format XML pour soumission |
Flexibilité | Très flexible, tant qu'il y a des pages. Jumping peut obtenir et transmettre des données | pas flexible |
服务器数据的三种方式
$_POST:数组类型,保存的POST提交的值 $_GET:数组类型,保存的GET提交的值 $_REQUEST:数组类型,保存的GET和POST提交的值
根据提交表单数据的方式不同,获取表单数据的方法也有所不同:get方式可以使用预定义变量$_GET
来获取;post方式可以使用预定义变量$_POST
来获取;如果不知道 form 表单通过哪种方式提交数据,就可以使用预定义变量$_REQUEST
来获取,它两种方式的数据都可以获取。
下面就来一一了解:
1、使用预定义变量$_GET快速获取表单数据(form表单需要设置为method="get"
)
在程序的开发过程中,由于 GET 方法提交的数据是附加到 URL 上发送的,因此在 URL 的地址栏中将会显示“URL+用户传递的参数”类型的信息,如下所示:
http://url?name1=value1&name2=value2 ...
name1、name2 为表单元素的名称(有表单元素的name属性设置),value1、value2 为表单元素的值。url和表单元素之间用“?
”隔开,而多个表单元素之间用“&
”隔开,每个表单元素的格式都是“name=value”,固定不变。
我们添加一下user.html文件的表单看看URL 的地址栏
user.php文件中可以直接使用预定义变量$_GET来
获取数据,$_GET 全局变量是一个关联数组,数组的键名为表单元素 name 的值,数组的值为对应表单的值。(注只要是 URL 中的参数都可以使用 $_GET 获取。)
<?php var_dump($_GET); ?>
可以使用$_GET['键名']的方式来一一获取每个表单元素的值:
<?php header("content-type:text/html;charset=utf-8"); echo "用户名为:".$_GET[&#39;user&#39;]."<br>生日为:".$_GET[&#39;bday&#39;]; ?>
2、使用预定义变量$_POST快速获取表单数据(form表单需要设置为method="post"
)
post方法不依赖于 URL,不会将传递的参数值显示在地址栏中。
$_POST
全局变量也是一个关联数组,数组的键名为表单元素 name 的值,数组的值为对应表单的值。
<?php header("content-type:text/html;charset=utf-8"); echo "用户名为:".$_POST[&#39;user&#39;]."<br>生日为:".$_POST[&#39;bday&#39;]; ?>
3、使用预定义变量$_REQUEST快速获取表单数据
$_REQUEST 全局变量是一个包含了 $_POST、$_GET 和 $_COOKIE 的数组,数组结构与 $_POST 和 $_GET 类似。
<?php header("content-type:text/html;charset=utf-8"); var_dump($_REQUEST); echo "用户名为:".$_REQUEST[&#39;user&#39;]."<br>生日为:".$_REQUEST[&#39;bday&#39;]; ?>
小结:
1、在开发的时候,如果明确是post提交就使用$_POST获取,如果明确get提交就用$_GET获取
2、request获取效率低,尽可能不要使用,除非提交的类型不确定的情况下才使用。
推荐学习:《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!