• 技术文章 >后端开发 >PHP问题

    php页面提交方式有什么不同

    青灯夜游青灯夜游2023-01-07 15:47:11原创102

    php页面数据提交方式有get和post两种,区别为:1、get提交在url地址上可以看到参数,post提交在地址栏上看不到参数;2、get不安全,post安全;3、get提交是参数一个一个的提交,post提交是所有参数作为一个整体一起提交;4、get提交一般不超过255个字节,post提交的大小取决于服务器;5、get很灵活,只要有页面的跳转就可以传递参数,而post不灵活。

    本教程操作环境:windows7系统、PHP8版、DELL G3电脑

    在php页面中,提交数据的方式有两种:get方式和post方式。

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

    get方式和post方式的区别

    1、外观上看

    get提交在地址上可以看到参数

    在这里插入图片描述

    post提交在地址栏上看不到参数

    在这里插入图片描述

    2、安全性

    get不安全,post安全

    get提交的数据在url栏可以看见,而post提交的数据是不可见的,因此post更安全。

    3、提交原理

    get提交是参数一个一个的提交

    post提交是所有参数作为一个整体一起提交

    4、提交数据大小

    get提交一般不超过255个字节

    post提交的大小取决于服务器

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

    5、灵活性

    get很灵活,只要有页面的跳转就可以传递参数

    post不灵活,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')

    小结:


    GETPOST
    外观上在地址上看到传递的参数和值地址栏上看不到数据
    提交数据大小提交少量数据,不同的浏览器最大值不一样,IE是255个字符提交大量数据,可以通过更改php.ini配置文件来设置post提交数据的最大值
    安全性
    提交原理提交的数据和数据之间在独立的将提交的数据变成XML格式提交
    灵活性很灵活,只要有页面的跳转就可以get传递数据不灵活

    服务器数据的三种方式

    $_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 ...

    我们添加一下user.html文件的表单看看URL 的地址栏

    1.gif

    1.png

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

    <?php
    var_dump($_GET);
    ?>

    2.png

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

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

    3.png

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

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

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

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

    4.png

    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'];
    ?>

    5.png

    小结:

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

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

    推荐学习:《PHP视频教程

    以上就是php页面提交方式有什么不同的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php
    上一篇:php.ini-dist和php.ini-recommended有什么区别 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • php静态化是什么意思• php怎么获取数组中的几个键• php怎么将单词转入字母数组中• php怎么将值转为整数型• php怎么查询类中方法是否存在• php中的时间戳怎么转换成时间
    1/1

    PHP中文网