写在前面

PHP

在之前的学习过程中我们接触过前后台数据请求交互的方法有表单提交、AJAX请求以及Angularjs中的$http,今天我们尝试在PHP中使用 $_GET 与$_POST 实现简单的前后台数据传输交互功能;


 
PHP中给我们提供了一群功能十分强大的超全局 数组,它们 可以在任何位置,任何作用域之内使用,而且无需声明,拿到即可使用!
又称 : 超全局数组、超全局变量、预定义数组、预定义变量
这篇文章里我们单独讲一下PHP 中的$_GET 变量和$_POST变量
① 在 PHP 中,预定义的 $_GET 变量用于收集来自 method="get" 的表单中的值。即用来获取前台通过get请求发送的数据。
② 预定义的 $_POST 变量用于收集来自 method="post" 的表单中的值。即用来获取前台通过post发送的数据。

顺便我们回顾下表单的一些基础知识:
1、 form表单的两个重要属性
action:表示表单提交的服务器地址
method:表单提交数据的方式,可选值有get、post两种。
2、get、post的区别
get通过URL传递数据,所有内容在URL(地址栏)可以看到不安全,而post无法看见,比较安全。
get传递的数据量是有限的且只能传递文本信息,而post可以传递大量数据并且可以传递图片、视频等其他文件类型。
get传输速度比post快(这是get的唯一一个优点)
3、get使用URL传递数据的格式
http://URL地址.html?name1=value1&name2=value2从: “?”表示参数传递的开始,多个参数之间用&符号间隔,同一个参数
用name来标识value。
http://127.0.0.1:8020/025454.html?username=123&password=123
所以使用表单时,input输入框的name属性一定不能省略, 如果省略input的name属性,则这个input的数据不会往后台传递;
接下来我们使用PHP 中的$_GET 变量和$_POST变量实现简单的前后台数据传输交互功能:

 form.html 文件代码如下
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>PHP $_GET 变量和$_POST变量使用示例</title>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
</head>
<body>
<form action="03-ChaoQuanJuArray.php" method="post">
用户名:<input type="text" name="username" />
密码:<input type="password" name="pwd" />
<button id="btn1">点击发送post请求</button>
</form>
<form action="03-ChaoQuanJuArray.php" method="get">
用户名:<input type="text" name="username" />
密码:<input type="password" name="pwd" />
<button id="btn2">点击发送get请求</button>
</form> </body>
</html>

接下来我们新建一个PHP文件用来请求访问和判断,代码如下:

if(isset($_GET["username"])&& isset($_GET["pwd"])){

     if($_GET["username"]=='wq'&& $_GET["pwd"]=="123"){
echo "登陆成功!";
}else{
echo "登陆失败!";
}
} if(isset($_POST["username"])&& isset($_POST["pwd"])){ if($_POST["username"]=='wq'&& $_POST["pwd"]=="123"){
echo "登陆成功!";
}else{
echo "登陆失败!";
}
}

则相应的函数触发的JS代码如下所示:

<script type="text/javascript">
$("#btn1").click(function(){
var username = $("input[name='username']").val();
var pwd = $("input[name='pwd']").val();
$.post("03-chaoQuanJuArray.php",{
"username":username,
"pwd":pwd,
},function(data){
alert(data);
})
});
$("#btn2").click(function(){
var username = $("input[name='username']").val();
var pwd = $("input[name='pwd']").val();
$.get("03-chaoQuanJuArray.php",{
"username":username,
"pwd":pwd,
},function(data){
alert(data);
})
});
</script>

!注意:在运行时确保已经搭建好了运行环境,保证服务器在线且处于运行状态

在运行HTML文件时,记得将服务器地址端口号改为localhost以访问本机文件:

则当我们输入密码,点击第一个按钮:点击发送POST请求时,表单演示如下:

则当我们输入密码,点击第二个按钮:点击发送GET请求时,表单演示如下:

在 HTML 表单中使用 method="get" 时,所有的变量名和值都会显示在 URL 中。

注释:所以在发送密码或其他敏感信息时,不应该使用这个方法!

然而,正因为变量显示在 URL 中,因此可以在收藏夹中收藏该页面。在某些情况下,这是很有用的。

注释:HTTP GET 方法不适合大型的变量值。它的值是不能超过 2000 个字符的。

 

PHP中使用 $_GET 与$_POST 实现简单的前后台数据传输交互功能的更多相关文章

  1. struts2 + jquery + json 简单的前后台信息交互

    ajax 是一种客户端与服务器端异步请求的交互技术.相比同步请求,大大提高了信息交互的速度和效率.是当下非常实用和流行的技术. 这里简单的说明 struts2 + jquery + json 下的 信 ...

  2. thinkphp中的_get,_post,_request

    ThinkPHP没有改变原生的PHP系统变量获取方式,所以依然可以通过$_GET. $_POST.$_SERVER.$_REQUEST 等方式 来获取系统变量,不过系统的Action类提供了对系统变量 ...

  3. PHP中的extract函数的用途 extract($_GET);extract($_POST)

    把客户端表单中的变量名取出来 addslashes -- 使用反斜线引用字符串 extract(addslashes($_POST)); --处理POST表单 把客户端<FORM METHOD= ...

  4. PHP函数---$_Get()和$_Post()的用法

    一.$_Get()和$_Post()函数是用来传值的,即对应两种提交表单的方法,get和post. 二.$_Get方法 (1)获取通过URL的传值 Example 1 新建两个PHP文件,1.php, ...

  5. 转 PHP函数---$_Get()和$_Post()的用法

    一.$_Get()和$_Post()函数是用来传值的,即对应两种提交表单的方法,get和post. 二.$_Get方法 (1)获取通过URL的传值 Example 1 新建两个PHP文件,1.php, ...

  6. vs2005中的WebBrowser控件的简单应用

    原文:vs2005中的WebBrowser控件的简单应用 这个控件被封装了一下,和以前的调用方式稍有不同.事件还是那几个,变化不大.方法变了不少.从网上能查到的资料不多,贴出一些代码来作参考.看看这段 ...

  7. signalr中Group 分组群发消息的简单使用

    前一段时间写了几篇关于signalr的文章 1.MVC中使用signalR入门教程 2.mvc中signalr实现一对一的聊天 3.Xamarin android中使用signalr实现即时通讯 在平 ...

  8. 经测试稳定可用的蓝牙链接通信Demo,记录过程中遇到的问题的思考和解决办法,并整理后给出一个Utils类可以简单调用来实现蓝牙功能

    说明:这是本人在蓝牙开发过程中遇到过的问题记录和分析,以及解决办法. 在研究过程中,许多的前人给出的解决方案和思路指导对我相当有帮助,但并非都是可采取的解决方法, 经过本人对这些方法的测试和使用过后, ...

  9. Delphi中的动态包,有详细建立包的步骤(答案很简单:因为包的功能强大)

    为什么要使用包? 答案很简单:因为包的功能强大.设计期包(design-time package)简化了自定义组件的发布和安装:而运行期包(run-time package)则更是给传统的程序设计注入 ...

随机推荐

  1. java201521123118《java程序设计》第3周总结

    1. 本周学习 总结初学面向对象,会学习到很多碎片化的概念与知识.尝试学会使用思维导图将这些碎片化的概念.知识组织起来.请使用纸笔或者下面的工具画出本周学习到的知识点.截图或者拍照上传. 2. 书面作 ...

  2. 201521123012 《Java程序设计》第一周学习总结

    一.本章学习内容 1.了解了JDK.JRE .JVM. 2.大概看过了Java的诞生.版本演进(JDK1.1.4,JDK1.1.5--JDK1.1.8,J2SE1.2--Java SE 8)以及三大平 ...

  3. 201521123111《Java程序设计》第13周学习总结

    本次作业参考文件 正则表达式参考资料 1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 书面作业 1. 网络基础 1.1 比较ping www.bai ...

  4. 201521123100《Java程序设计》第14周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 1. MySQL数据库基本操作 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自 ...

  5. 201521123059 《Java程序设计》第十四周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 1.关系型数据库 --建立表格时表中一列中的数据类型必须一致.关系表中的行必须是唯一的,列是不可分的,某些行的某 ...

  6. eclipse中svn插件在线安装方式

    SVN插件地址:http://subclipse.tigris.org/update_1.8.x 第一步:eclipse>Help菜单>Install New Software- 第二步: ...

  7. Python数据分析numpy库

    1.简介 Numpy库是进行数据分析的基础库,panda库就是基于Numpy库的,在计算多维数组与大型数组方面使用最广,还提供多个函数操作起来效率也高 2.Numpy库的安装 linux(Ubuntu ...

  8. SSM整合开发

    导入开发包 asm-3.2.0.RELEASE.jar asm-3.3.1.jar c3p0-0.9.jar cglib-2.2.2.jar com.springsource.net.sf.cglib ...

  9. 通过Excel认识POI

    1.POI是什么 Apache POI - the Java API for Microsoft Documents,顾名思义,Apache的三方包,用来操作微软office文档的,多数时候用来操作e ...

  10. 翻译一篇关于jedis的文章

    翻译 自 http://www.baeldung.com/jedis-java-redis-client-libraryIntro to Jedis – the Java Redis Client L ...