为了账号安全,请及时绑定邮箱和手机立即绑定

用于登录的多个数据库请求

用于登录的多个数据库请求

PHP
慕尼黑5688855 2022-07-29 10:19:01
我有三个与我的登录场景的这一部分相关的文件:/project/index.html/project/api/user/login.php/project/api/objects/user.phpindex.html 中有一个简单的登录表单,调用 ./api/user/login.php。在这种形式中,我有一个复选框,用户可以选择是否保持登录状态。如果用户选择了此选项,每次登录时,我想检查凭据是否正确(登录功能 - > user.php 中的 stmt1)以及更新 lastlogin(日期时间)、标识符和安全令牌(如果复选框已设置(登录功能 - > user.php 中的 stmt2)。user.php 包含在 login.php 中,它从 index.html 表单中获取值并将它们发送到 user.php 中的 login() 函数。根据函数的返回值,login.php 决定登录是否成功。登录本身 (stmt1) 有效,但 lastlogin、标识符和安全令牌 (stmt2) 的更新不起作用。登录.phpsession_start();// include database and object filesinclude_once '../config/database.php';include_once '../objects/user.php';// get database connection$database = new Database();$db = $database->getConnection();// prepare user object$user = new User($db);// set ID property of user to be edited$user->username = isset($_GET['username']) ? $_GET['username'] : die();$user->password = base64_encode(isset($_GET['password']) ? $_GET['password'] : die());$user->remember = isset($_GET['remember']) ? $_GET['remember'] : die();$stmt1 = $user->login();if($stmt1->rowCount() > 0){    // get retrieved row    $row1 = $stmt1->fetch(PDO::FETCH_ASSOC);    $_SESSION['userid'] = $row1['uid'];    // create array    $user_arr=array(        "status" => true,        "message" => "Login erfolgreich!",        "uid" => $row1['uid'],        "username" => $row1['username']    );    $stmt2 = $user->login();    $row2 = $stmt2->fetch(PDO::FETCH_ASSOC);    print_r($row2);    // create array    $user_arr=array(        "lastlogin" => $row2['lastlogin']    );}else{    $user_arr=array(        "status" => false,        "message" => "Benutzername und/oder Passwort nicht korrekt!",    );}// make it json formatprint_r(json_encode($user_arr));?>
查看完整描述

1 回答

?
子衿沉夜

TA贡献1828条经验 获得超3个赞

在user.php之后return $stmt1; 返回代码并且未设置cookies

我会这样做...检查登录...如果为真,请使用 id 和令牌保存 cookie 然后定期检查令牌和 id 是否对应...如果是...只需更新上次登录时间。

注意:您准备好的声明很容易受到攻击!不要在参数后面加上“。” 改用占位符,并且不对密码进行编码,最好对其进行散列...然后比较散列


查看完整回答
反对 回复 2022-07-29
  • 1 回答
  • 0 关注
  • 70 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信