您的位置:首页 > 编程语言 > PHP开发

PHP表单处理篇

2016-03-12 17:17 736 查看
PHP表单处理篇:

表单在Web应用程序中被广泛使用,提交的方式主要是GET和POST两种,鉴于这两种方式的安全性考虑,一般提交敏感的数据必须使用POST,而一些不敏感的数据方式可选择GET,它们的区别:GET方式提交的数据,都在URL后作为参数显示,对外界客户是明文的;而POST方式,提交的数据都嵌入到了HTTP请求头中,不明文给客户端,所以更加安全,但是仅仅它们自提供的安全限制还不够,是不能防止黑客进行攻击的,所以下面结合登录例子总结下表单的验证处理流程和规则(技术讨论群:489451956(新)),具体如下:

1、表单处理

HTML表单代码片段:

<form
id="form_userlogin"method='post'
action="
<form
id="form_userlogin"method='post'
action="http://127.0.0.1/Study/Php/formHandleSafe"
>
<table
width="220px"border="0"
cellspacing="15"cellpadding="0">
<tr>
<td><div>
账  号:

</div></td>
<td><input
name="account"id="account"></input></td>
</tr>
<tr>
<td><div>
密  码:

</div></td>
<td><input
name="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
"恭喜,登录成功!";
}

结果:







到这里,我们已经比较安全的处理了表单的提交整个过程了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: