ajax登录和TP安全
Posted PHP菜鸟进阶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ajax登录和TP安全相关的知识,希望对你有一定的参考价值。
ajax登录
ajax异步登录,有效提升用户体验、减少服务器负载、减少带宽占用。
登录页面login.html
<input name="name" type="text" />
<input name="pwd" type="password" />
<span class="mb2">登录</span>
<!--引入jq库-->
<script src="js/jquery-1.8.3.min.js"></script>
<script type="text/javascript">
$(function(){ $('.mb2').click(function(){
//获取输入的用户名
var name = $('input[name="name"]').val();
//获取输入密码
var pwd = $('input[name="pwd"]').val();
if(name==''||pwd==''){ alert('请输入用户名和密码'); }else{
/*发送ajax请求:
post形式发送用户名和密码到index控制器,
数据格式为json;返回数据如果为1登录成功*/
$.ajax({
type: "post",
url: "index.php",
data: {'username':name,'password':pwd},
dataType: "json",
success: function(msg){
if(msg.status!=1) alert('用户名或密码错误');
window.location.href="index.php"; } }); } }) })
</script>
控制器index.php
<?php
//开启session
session_start();
//notice错误不提示
error_reporting(E_ALL & ~E_NOTICE);
//status为1时登录成功
$status = '';
//已登录过进入主页
if($_SESSION['admin']!='') header('Location:index.html');
//是否post抛来的数据
if(isset($_POST['username'])){
$username =$_POST['username'];
//密码加密
$password = md5($_POST['password']);
//连接数据库
$link = mysqli_connect('localhost',
'root','','1306_sql');
//设置编码
mysqli_query($link,'set names utf8');
/*显示不下这里回车了;
代码中回车要写成另一字符串,点连接起来*/
$sql = "select * from admin where is_delete=1 and username='$username' and password='$password'";
//sql发送给数据库
$row=mysqli_query($link,$sql);
//获取返回信息
$res=mysqli_fetch_assoc($row);
//有结果将用户名保存在session中
if($res){ $_SESSION['admin'] = $res['username']; $status = 1; } }
//判断是否为ajax请求
if(isset($_SERVER["HTTP_X_REQUESTED_WITH"])){
//json形式返回ajax信息
echo json_encode(array('status'=>$status)); }else{
//显示登录页面
require('login.html'); }
?>
先写出基本的登录html页面,用控制器加载显示出来;
引入jq库,不引入库jq用不了;
写js/jq,获取输入的用户名和密码;
发送ajax请求到控制器,控制器中要查看,在浏览器审查元素的网络中查看。
ThinkPHP框架安全机制
目录安全文件:每个文件夹下都有一个空的html页面,防止目录被异常访问。添加目录安全文件 ->在入口文件里面定义BUILD_DIR_SECURE常量
define('BUILD_DIR_SECURE', true);
表单安全:
ThinkPHP内置的自动验证(模型类中定义$_validate)和自动完成(在模型类里面通过$_auto)功能可以有效地对表单提交的数据安全加以控制;
表单令牌有效防止表单的重复提交等安全防护
数据安全:
查询条件尽量使用数组形式,如果使用字符串形式使用预处理机制
自动过滤接收数据和添加到数据库的数据
上传安全:对上传的后缀、类型、大小进行检查
以上是关于ajax登录和TP安全的主要内容,如果未能解决你的问题,请参考以下文章