>백엔드 개발 >PHP 문제 >PHP 페이지 제출 방법의 차이점은 무엇입니까?

PHP 페이지 제출 방법의 차이점은 무엇입니까?

青灯夜游
青灯夜游원래의
2023-01-07 15:47:113843검색

PHP 페이지 데이터를 제출하는 방법에는 get과 post 두 가지가 있습니다. 차이점은 다음과 같습니다. 1. get 제출의 경우 URL 주소에서 매개변수를 볼 수 있지만 post 제출의 경우 주소 표시줄에서 매개변수를 볼 수 없습니다. 2. Get은 안전하지 않고 Post는 안전합니다. 3. Get 제출은 매개변수를 하나씩 제출하는 것이고 사후 제출은 전체 매개변수를 함께 제출하는 것입니다. 4. Get 제출은 일반적으로 255바이트를 초과하지 않습니다. 게시물 제출 크기는 서버에 따라 다릅니다. 5. Get은 페이지가 이동할 때 매개변수가 전달될 수 있는 한 매우 유연하지만 게시물은 유연하지 않습니다.

PHP 페이지 제출 방법의 차이점은 무엇입니까?

이 튜토리얼의 운영 환경: windows7 시스템, PHP8 버전, DELL G3 컴퓨터

PHP 페이지에는 데이터를 제출하는 두 가지 방법, 즉 get 메서드와 post 메서드가 있습니다.

<form method="post" action=""></form>
<form method="get" action=""></form>

get 메소드와 post 메소드의 차이점

1. 외관

get 메소드 제출 시 주소에 있는 매개변수를 볼 수 있습니다

PHP 페이지 제출 방법의 차이점은 무엇입니까?

게시물 제출 시 주소 표시줄의 매개변수

PHP 페이지 제출 방법의 차이점은 무엇입니까?

2. 보안

get은 안전하지 않습니다. 게시물은 안전합니다

get으로 제출한 데이터는 URL 표시줄에서 볼 수 있지만 게시물로 제출한 데이터는 보이지 않으므로 게시물이 더 안전합니다.

3. 제출 원칙

get 제출은 매개변수를 하나씩 제출하는 것입니다.

post submit은 모든 매개변수를 전체적으로 함께 제출하는 것입니다.

4.get 제출은 일반적으로 255를 초과하지 않습니다. 바이트

게시물 제출 크기는 서버에 따라 다릅니다.

// 在php.ini中,可以配置post提交的大小
post_max_size = 8M

5. 유연성

get은 매우 유연하며 페이지 이동이 있는 한 매개변수를 전달할 수 있습니다.

게시물은 유연하지 않으며 게시물 제출이 필요합니다.

1、 html跳转
   <a>跳转</a>

2、JS跳转
<script>
	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')

요약:

POSTAppearance에서 전달된 매개변수와 값을 볼 수 있습니다. 주소데이터가 없습니다 주소 표시줄에서 볼 수 있습니다데이터 제출 크기소량의 데이터를 제출하세요. 최대값은 브라우저마다 다릅니다. IE는 255자입니다많은 양의 데이터를 제출하면 최대값을 설정할 수 있습니다. php.ini 구성 파일을 변경하여 게시물 제출 데이터의 값보안 LowHigh제출 원칙제출된 데이터와 데이터는 독립적입니다제출된 데이터를 XML 형식으로 변환 제출용유연성페이지가 있는 한 매우 유연함 점핑은 데이터를 가져오고 전달할 수 있음유연하지 않음

服务器数据的三种方式

$_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视频教程

GET

위 내용은 PHP 페이지 제출 방법의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.