一、注册页面逻辑
- 连接数据库
- 接受数据
- 在插入数据到数据表之前,做用户名检测
- insert sql 语句,插入数据库
二、pdo 预处理
pdo预处理机制 防止sql注入
pdo使用 ?参数占位符 或者 命名占位符 :name
<?php
require '1-connect.php';
$username = isset($_POST['username']) ? $_POST['username'] :null;
$password = isset($_POST['password']) ? $_POST['password'] :null;
//pdo预处理机制 防止sql注入
//pdo使用 ?参数占位符 或者 命名占位符 :name
//可以把它看作是想要运行的 SQL 的一种编译过的模板
$sql = "SELECT `uname`,`pwd` FROM `users` WHERE `uname`= ?" ;
//prepare()方法 - 准备一条将要执行的预处理语句 返回的是pdo statement 对象
$stmt = $pdo->prepare($sql);
//bindParam()绑定一个参数到指定的变量名
$stmt->bindParam(1,$username,PDO::PARAM_STR, 12);
// $stmt->bindParam(2,$password,PDO::PARAM_STR, 60);
//执行一条预处理语句
$stmt->execute();
// echo '受影响的行数' . $stmt->rowCount();
// $res = $pdo->query($sql)->fetch();
//检测用户是否存在
$res = $stmt->fetch();
// var_dump($res);
if($res)
{
//检测密码 的正确性
if(password_verify($password,$res['pwd']))
{
echo json_encode(array('status'=>1,'msg'=>'登录成功'),320);
}else{
echo json_encode(array('status'=>0,'msg'=>'用户名或密码错误'),320);
}
}else{
echo json_encode(array('status'=>0,'msg'=>'用户名或密码错误'),320);
}