补0819作业:实现预处理与会话跟踪 及 登录防sql注入
16lz
2021-08-25
if(key_exists('uname',$data)&&key_exists('pwd',$data)){//模拟数据$user='zce';$pwd='$2a$08$lV0Gr4AKx7xH7cCU4KCGCOikNzGPaWIpw9W7A9BONIxoJ2.hGC9qi';$data=$_POST;$dbhost='localhost';$solt='yyds';$dbdatabase='hm';$username='root';$userpass='root';$dsn='mysql:host='.$dbhost.';dbname='.$dbdatabase.';';$dbh=newPDO($dsn,$username,$userpass);//$data['uname']="'213213'or1=1";//$sql="selectuser_id,password,usernamefromsp_userwhereusername=?andpassword=?";$sql="SELECTuser_id,password,usernameFROMsp_userWHEREusername=?ANDpassword=?";//$sql="select'user_id','password'fromsp_userwhereusername=:usernameandpassword=:password";$tes=$dbh->prepare($sql);//$tes->bindParam(1,$data['uname'],PDO::PARAM_STR);//$tes->bindParam(2,md5($data['pwd'].$solt),PDO::PARAM_STR);//$tes->bindParam(':username',$data['uname']);//$tes->bindParam(':password',md5($data['pwd'].$solt));//$tes->execute();$tes->execute([$user,$pwd]);//$tes->execute(['username'=>$user,'password'=>$pwd]);$res=$tes->fetch(PDO::FETCH_OBJ);if($res){//存储登录记录保持登录状态保持会话//session('user:'.$data['user_id'],$res);tp框架助手函数存储session$_SESSION['user:'.$data['user_id']]=$res;return['code'=>1,'data'=>$res,'msg'=>'登录成功'];}else{return['code'=>2,'data'=>[],'msg'=>'用户或者密码输入错误'];}}else{return['code'=>0,'data'=>[],'msg'=>'用户名或者密码不得为空'];}
更多相关文章
- 实例演绎pdo在用户登录环节是怎么防sql注入及实战预处理与会话跟
- 配置ssh远程登录sshd服务器
- 配置SSH密码登录
- php 登录注册
- PHP:【商城后台管理系统】部署管理员未登录拦截,进行重定向
- PHP:【商城后台管理系统】admin超级管理员后台登录界面部署
- 【RS】H3C设备 配置SSH登录
- 【PHP会话控制】理解会话控制cookie和session详解(附自动登录案例
- Django 配置MySQL作为后端数据库