ホームページ > バックエンド開発 > PHPの問題 > PHPページの送信方法の違いは何ですか?

PHPページの送信方法の違いは何ですか?

青灯夜游
リリース: 2023-03-17 17:56:02
オリジナル
3823 人が閲覧しました

PHP ページでデータを送信するには、get と post の 2 つの方法があります。違いは次のとおりです: 1. get で送信する場合は、URL アドレスのパラメーターを確認できますが、post で送信する場合は、URL アドレスのパラメーターを確認できません。アドレスバーのパラメータを参照してください; 2. Get は安全ではありません。post は安全です; 3. Get 送信はパラメータを 1 つずつ送信することであり、post 送信はすべてのパラメータを全体としてまとめて送信することです; 4. 一般的に送信を取得します255 バイトを超えず、ポスト送信のサイズはサーバーによって異なります; 5. Get は非常に柔軟で、ページジャンプがある限りパラメータを渡すことができますが、post は柔軟性がありません。

PHPページの送信方法の違いは何ですか?

このチュートリアルの動作環境: Windows7 システム、PHP8 バージョン、DELL G3 コンピューター

php ページでは、次の 2 つの方法があります。データの送信:get モードと post モード。

<form method="post" action=""></form>
<form method="get" action=""></form>
ログイン後にコピー

get メソッドと post メソッドの違い

1. 外観

get Submitアドレス

PHPページの送信方法の違いは何ですか?

post Submit にパラメータが表示され、アドレス バー

PHPページの送信方法の違いは何ですか?

## にパラメータが表示されます。

#2. セキュリティ

get は安全ではありませんが、post は安全です

get によって送信されたデータは URL バーに表示されますが、post によって送信されたデータは目に見えないので投稿の方が安全です。

3. 提出の原則

get 提出はパラメータを 1 つずつ提出することです

post 提出はすべてのパラメータをまとめて提出することです

4. 送信されたデータのサイズ

取得送信は通常 255 バイトを超えません

投稿送信のサイズはサーバーによって異なります

// 在php.ini中,可以配置post提交的大小
post_max_size = 8M
ログイン後にコピー

5. 柔軟性

get は非常に柔軟です。ページジャンプがある限りパラメータを渡すことができます。

post は柔軟性がありません。投稿には次の参加が必要です。フォーム

1、 html跳转
   <a href="index.php?name=tom&age=20">跳转</a>

2、JS跳转
<script type="text/javascript">
	location.href='index.php?name=tom&age=20';
	location.assign('index.php?name=tom&age=20');
	location.replace('index.php?name=tom&age=20');
</script>

3、PHP跳转
header('location:index.php?name=tom&age=22')
ログイン後にコピー

概要:

外観送信データ サイズセキュリティ提出原則#提出データをXML形式に変換して提出します 柔軟性があり、ページジャンプがある限り、データの取得と受け渡しが可能です

##GET
POST
アドレスに渡されたパラメータと値が表示されますアドレスにはデータが表示されませんbar
少量のデータを送信します。ブラウザごとに最大値が異なります。IE は 255 文字です。大量のデータを送信します。データの最大値は、php.ini 設定ファイルを変更することで設定できます。 送信後データの最大値
LowHigh
提出データとデータは独立です #非常に柔軟です
柔軟性がありません

服务器数据的三种方式

$_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 的地址栏

PHPページの送信方法の違いは何ですか?

PHPページの送信方法の違いは何ですか?

user.php文件中可以直接使用预定义变量$_GET来获取数据,$_GET 全局变量是一个关联数组,数组的键名为表单元素 name 的值,数组的值为对应表单的值。(注只要是 URL 中的参数都可以使用 $_GET 获取。)

<?php
var_dump($_GET);
?>
ログイン後にコピー

PHPページの送信方法の違いは何ですか?

可以使用$_GET['键名']的方式来一一获取每个表单元素的值:

<?php
header("content-type:text/html;charset=utf-8");
echo "用户名为:".$_GET['user']."<br>生日为:".$_GET['bday'];
?>
ログイン後にコピー

PHPページの送信方法の違いは何ですか?

2、使用预定义变量$_POST快速获取表单数据(form表单需要设置为method="post"

post方法不依赖于 URL,不会将传递的参数值显示在地址栏中。

$_POST 全局变量也是一个关联数组,数组的键名为表单元素 name 的值,数组的值为对应表单的值。

<?php
header("content-type:text/html;charset=utf-8");
echo "用户名为:".$_POST['user']."<br>生日为:".$_POST['bday'];
?>
ログイン後にコピー

PHPページの送信方法の違いは何ですか?

3、使用预定义变量$_REQUEST快速获取表单数据

$_REQUEST 全局变量是一个包含了 $_POST、$_GET 和 $_COOKIE 的数组,数组结构与 $_POST 和 $_GET 类似。

<?php
header("content-type:text/html;charset=utf-8");
var_dump($_REQUEST);
echo "用户名为:".$_REQUEST['user']."<br>生日为:".$_REQUEST['bday'];
?>
ログイン後にコピー

PHPページの送信方法の違いは何ですか?

小结: 

 1、在开发的时候,如果明确是post提交就使用$_POST获取,如果明确get提交就用$_GET获取 

 2、request获取效率低,尽可能不要使用,除非提交的类型不确定的情况下才使用。

推荐学习:《PHP视频教程

以上がPHPページの送信方法の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート