写在前面

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. 团队作业8——第二次项目冲刺(Beta阶段)--5.24 forth day

    团队作业8--第二次项目冲刺(Beta阶段)--5.24 forth day Day four: 会议照片 项目进展 Beta冲刺的第四天,以下是今天具体任务安排: 队员 昨天已完成的任务 今日计划完 ...

  2. 【Alpha阶段汇总】成果展示与体验总结

    一.燃尽图 二.软件截图 三.代码与图片.音乐素材仓库 git仓库 四.问题与总结 1.git提交问题 之前创建的仓库地址是http://git.oschina.net/8265559926/grou ...

  3. 201521123119《Java程序设计》第5周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 2. 书面作业 代码阅读:Child压缩包内源代码 Q1.1 com.parent包中Child.java文件能否编译通过?哪 ...

  4. 201521123060 《Java程序设计》第5周学习总结

    1.本周学习总结 2.书面作业 Q1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过?哪句会出现错误?试改正该错误.并分析输出结果. 答:不能 ...

  5. 201521123093 java 第四周学习总结

    1.平面作业 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. 答:1.类与方法的注释 2.super关键字代表的是父类,super.方法表示调用的是父类 2. ...

  6. 猴子吃桃问题(南阳ACM324)

    猴子吃桃问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:0 描述 有一堆桃子不知数目,猴子第一天吃掉一半,又多吃了一个,第二天照此方法,吃掉剩下桃子的一半又多一个,天天如此, ...

  7. 使用C#编写SqlHelper类

    无聊的周末,学习.编码无力.想找点事干但又不知道干点什么,猛然发现自己学过的SqlHelper快忘记了.于是乎虎躯一震心想怎能如此堕落下去,立马打开电脑,双手摸上键盘.写下此文作为学习过程中的复习,并 ...

  8. Java:@Override标签的多态性详解

    Override(重写)是子类与父类的一种多态性体现. Override允许子类改变父类的一些行为. 为什么需要Override:当父类不满足子类的一些要求时我们就需要子类对父类的一些行为进行重写.  ...

  9. python3中的编码与解码用法

    #!/usr/bin/env python3 # -*- coding: utf-8 -*- __author__ = '人生入戏' #python3在编码时会把str编码成utf-8的bytes类型 ...

  10. 关于APP分享到QQ、微信等

    <script> var shares=null;        var Intent=null,File=null,Uri=null,main=null; function plusRe ...