gpt4 book ai didi

php - 使用 PDO 登录系统

转载 作者:行者123 更新时间:2023-11-29 13:43:53 26 4
gpt4 key购买 nike

我一直在使用这段代码,但无法找出问题所在。

它可以正常登录,但不会将 ID 传递到 session 中。它与 JQuery 一起使用。

$loginresult = $db->prepare("SELECT * FROM users WHERE username = :username AND password = :password");
$loginresult->bindParam(":username", $username);
$loginresult->bindParam(":password", $encryptedPassword);
$loginresult->execute();
$result = $loginresult->fetch(PDO::FETCH_OBJ);

if($loginresult !== false){
$_SESSION['loggedin'] = microtime();
$_SESSION['userid'] = $result->id;
echo 'true';
}else{
echo 'false';
}

编辑:新代码

<?php
require('../../config.php');

$username = $_POST['username'];
$password = $_POST['password'];

$encryptedPassword = crypt($password,$salt);

$loginresult = $db->prepare("SELECT * FROM users WHERE username = :username AND password = :password");
$loginresult->bindParam(":username", $username);
$loginresult->bindParam(":password", $encryptedPassword);
$loginresult->execute();
$count = $loginresult->rowCount();
var_dump($count);
print_r($db->errorInfo());
if($count){
$result = $loginresult->fetch(PDO::FETCH_OBJ);
var_dump($result);
print_r($db->errorInfo());
session_start();
$_SESSION['loggedin'] = microtime();
$_SESSION['userid'] = $result->id;
echo $result->id;
//echo 'true';
}else{
echo 'false';
}
?>

最佳答案

您可能想要:

if($loginresult){

而不是:

if($loginresult !== true){

请注意,fetch 仅在失败时返回 false

当然,在将任何输出发送到浏览器之前,您需要 session_start();

关于php - 使用 PDO 登录系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17713757/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com