php - 在 PHP 中传递 $_SESSION

标签 php session

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

我还收到了最后的 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/

相关文章:

php - 如何通过Mailgun发送邮件模板?

session - Keycloak 注销请求不会注销用户

php - 使用php和sql session 的在线测验系统

php - <reference> PHPStorm 上预期的、意外的文件结束

javascript - 在 javascript 中使用 $row ['username' ]

php - 尝试使用 PHP 将配置文件从 HTML 表单更新到 MySQL

python - 自定义 session 接口(interface)的访问方式是否与默认 session 对象相同?

php - 如何使用数据库创建带下拉菜单的导航菜单?

php - 如何在 Phalcon PHP 中管理 cookie

session - session 或Cookie困惑