写在前面

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. 201521123054 《Java程序设计》第5周学习总结

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

  2. 201521123093 java 第十三周学习总结

    1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 书面作业 1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu ...

  3. 201521123031 《Java程序设计》第11周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 本次PTA作业题集多线程 1.互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) ...

  4. MD格式示例

    一个例子: 例子开始 1. 本章学习总结 今天主要学习了三个知识点 封装 继承 多态 2. 书面作业 Q1. java HelloWorld命令中,HelloWorld这个参数是什么含义? 今天学了一 ...

  5. Oracle总结第一篇【基本SQL操作】

    前言 在之前已经大概了解过Mysql数据库和学过相关的Oracle知识点,但是太久没用过Oracle了,就基本忘了-印象中就只有基本的SQL语句和相关一些概念-.写下本博文的原因就是记载着Oracle ...

  6. Hibernate第十一篇【配置C3P0数据库连接池、线程Session】

    Hibernate连接池 Hibernate自带了连接池,但是呢,该连接池比较简单..而Hibernate又对C3P0这个连接池支持-因此我们来更换Hibernate连接池为C3P0 查看Hibern ...

  7. Ubuntu17.04安装wps

    1.进入http://community.wps.cn/download/下载wps-office安装包,我下载的是dep的包. 2.进行安装执行命令:sudo dpkg -i wps-office_ ...

  8. uva 10391

    这个题,单纯做出来有很多种方法,但是时间限制3000ms,因此被TL了不知道多少次,关键还是找对最优解决方法,代码附上: #include<bits/stdc++.h> using nam ...

  9. 安装 node-sass 时报错

    在安装 node-sass 时报错,截图如下 解决方法如下: npm install --save node-sass --registry=https://registry.npm.taobao.o ...

  10. Nginx学习——Nginx启动、停止、重启和信号控制以及平滑升级

    1.Nginx 启动与停止 (1)启动方式 启动格式:Nginx可执行文件地址 -c Nginx配置文件地址 /etc/local/nginx/sbin/nginx -c /root/dufy/ngi ...