gpt4 book ai didi

php - 在 PHP 中传递 $_SESSION

转载 作者:可可西里 更新时间:2023-11-01 00:43:21 24 4
gpt4 key购买 nike

目前已经在这里工作了几个小时,迫切需要一双新眼睛。当登录发生时,将加载一个表单以根据数据库测试加密的密码和用户名,因为它在运行时没有错误显示在表单中,但只是在运行时它拒绝来自当前用户的数据正在传递的数据库。

我还收到了最后的 else 声明,给我“拒绝访问”任何帮助将不胜感激,只需要一双新的眼睛,非常感谢。还要添加所有 $data 实例是数据库中的字段

<?php
$serverName = "localhost";
$username = "root";
$password = "";
$databaseName = "filestackusers";
$connect = new PDO("mysql:host=$serverName;dbname=$databaseName",$username, $password);
//encrypt pass and user for search
if(isset($_POST["username"]) && isset($_POST["password"]))
{
$FolderEncryption = md5($_POST['username']);
$passwordEncryption = md5($_POST['password']);
}
else
{
echo "information not passed";
}


try
{
//search if found load info
$checkSqlStmt = $connect->prepare("SELECT * FROM users WHERE user_folder =
:FolderEncryption AND password = :passwordEncryption");

//bind
$checkSqlStmt->bindParam(':FolderEncryption', $FolderEncryption, PDO::PARAM_STR);
$checkSqlStmt->bindParam(':passwordEncryption', $passwordEncryption, PDO::PARAM_STR);

//execute
$checkSqlStmt->execute();

$data = $checkSqlStmt -> fetchAll();

}
catch (Exception $ex)
{
die("An error has occured! " . $ex->getMessage());
}

if ($data)
{
if($_POST["username"] == $data[0]["username"]) //recheck email security
{
echo 'Access Granted';

$_SESSION['userID'] = $data[0]['user_id'];
$_SESSION['Username'] = $data[0]['username']; //set sessions
$_SESSION['Password'] = $data[0]['password'];
$_SESSION['Email'] = $data[0]['email'];
$_SESSION['UserFolder'] = $data[0]['user_folder'];

//load user info
loadFileInformation();
}
}
else
{
echo "Access Denied";
}
?>

最佳答案

只有当 $data 的计算结果为 false 时,您才会回显 access denied。当您根本不分配它时可能会出现这种情况,当您在执行查询时遇到异常时会发生这种情况。如果没有异常,fetchAll 在出错的情况下可能仍会返回 false。

而且,如果查询正确执行但未返回任何行,fetchAll() 将返回一个空数组,这在 PHP 中的计算结果也为 false。 (我没有编造这些东西!)

因此无论哪种情况,都是由于查询的执行。

关于php - 在 PHP 中传递 $_SESSION,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27515727/

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