PHP表单处理篇
来源:互联网 发布:一些计算机算法的例子 编辑:程序博客网 时间:2024/05/28 14:57
PHP表单处理篇:
表单在Web应用程序中被广泛使用,提交的方式主要是GET和POST两种,鉴于这两种方式的安全性考虑,一般提交敏感的数据必须使用POST,而一些不敏感的数据方式可选择GET,它们的区别:GET方式提交的数据,都在URL后作为参数显示,对外界客户是明文的;而POST方式,提交的数据都嵌入到了HTTP请求头中,不明文给客户端,所以更加安全,但是仅仅它们自提供的安全限制还不够,是不能防止黑客进行攻击的,所以下面结合登录例子总结下表单的验证处理流程和规则(技术讨论群:489451956(新)),具体如下:
1、表单处理
HTML表单代码片段:
<formid="form_userlogin"method='post'action="
<formid="form_userlogin"method='post'action="http://127.0.0.1/Study/Php/formHandleSafe">
<tablewidth="220px"border="0"cellspacing="15"cellpadding="0">
<tr>
<td><div>
账 号:
</div></td>
<td><inputname="account"id="account"></input></td>
</tr>
<tr>
<td><div>
密 码:
</div></td>
<td><inputname="password"type="password"id="password"></input></td>
</tr>
</table>
</form>
JavaScript代码片段:
//登录事件监听引用jquery
$("#action_userlogin").click(function() {
var account = $("#account").val();
var password = $("#password").val();
// 进行简单的为空判断实际应该增加更多验证
if("" ==account ||"" == password) {
alert("账号或密码不能为空哦!");
return;
}
// 提交表单
$.post($("#form_userlogin").attr("action"),
{
account:account,
password:password
},
function(data,status){
if(status =="success")
alert(data);
else
alert("登录失败!请查看服务端逻辑是否问题!");
});
});
php代码片段:
这里的php代码只是返回前端请求返回的内容:
echo "恭喜,登录成功!";
结果(前端校验):
2、表单验证
这里的表单验证,主要是对用户传递的参数进行验证和过滤,防止XSS攻击等,具体如下:
php代码片段:
// 变量声明并初始化
$account= $password = '';
if($_SERVER['REQUEST_METHOD'] =="POST") {
$account= $this->paramsSafeHandle($_POST['account']);
$password= $this->paramsSafeHandle($_POST['password']);
}
// 登录逻辑(这里省略)
if(empty($account) ||empty($password)) {
echo '用户名或密码不能为空哦!';
}
echo "恭喜,登录成功!";
下面为核心的请求表单参数验证:
// 处理表单参数验证
function paramsSafeHandle($data) {
$data= trim($data); // 去除不必要的字符如:多余的空格、制表符、换行等
$data= stripslashes($data); // 删除用户输入的反斜杠
$data= htmlspecialchars($data);//将特殊字符转为html实体类型可防止XSS
return $data;
}
3、表单必填
// 登录逻辑(这里省略实际这里要处理登录的正常逻辑)
if(empty($account) ||empty($password)) {
echo '用户名或密码不能为空哦!';
}
4、参数验证
/**
* 邮箱格式校验
*/
function email($email) {
$rule= "/([\w\-]+\@[\w\-]+\.[\w\-]+)/";
if(!preg_match($rule, $email)) {
return false;
}
return true;
}
5、表单完成
总结下,表单的处理过程:前端Html页面检验->php表单参数验证->表单必填->表单参数格式规则校验。详细代码如下:
php代码片段:
// 变量声明并初始化
$account= $password = '';
if($_SERVER['REQUEST_METHOD'] =='POST') {
// 表单数据过滤
$account= $this->paramsSafeHandle($_POST['account']);
$password= $this->paramsSafeHandle($_POST['password']);
// 登录逻辑(这里省略)
if(empty($account) ||empty($password)) {
echo '用户名或密码不能为空哦!';
return;
}
// 表单数据格式规则校验
$status= email($account);
if(!$status) {
echo '用户名的格式不对,请认真核对!';
return;
}
echo "恭喜,登录成功!";
}
结果:
到这里,我们已经比较安全的处理了表单的提交整个过程了。
- PHP表单处理篇
- php表单01-表单处理
- [表单] -- php表单过期处理
- PHP处理表单
- 17. PHP 表单处理
- PHP表单处理
- PHP表单过期处理
- PHP 表单处理
- **PHP** 表单(1)-表单处理
- 用PHP处理HTML表单
- php之表单过期处理
- php笔记之表单处理
- PHP处理表单(代码)
- PHP表单数据初步处理
- php表单处理基本方法
- PHP 超全局变量,表单处理
- 实例学习 PHP 之表单处理篇(一)
- PHP表单处理-GET与POST区别
- UILabel补充
- 应聘时给HR最漂亮的回答
- Logistic回归(实例)
- CentOS6.5 yum安装配置nginx 以及相关配置
- 第三周上机实践项目 项目1--个人所得税计算器
- PHP表单处理篇
- 关于github for windows 登录失败提示密码账户错误的解决方案
- 【转】unity3d所要知道的基础知识体系大纲
- 十字链表(Java)
- android 外部启动activity,自定义action,action常量大全
- 【Java】容器类学习之路(二)Collection详解:List、Set和Queue
- JS与OC交互(iPhone项目)中JavaScriptCore.framework的使用
- 今天是3月12号。大明宫钻石店忙回来下午做了比比送的这本书的2.1会员登陆页的临摹
- LCS加强版+输出路径(1503)