PDO登录不起作用?

时间:2016-01-01 20:26:09

标签: php mysql pdo

所以几天前我在创建登录时遇到了麻烦,该线程中的一个人建议我使用预备语句。

所以我开始使用PDO查找准备好的语句,并且我已经设法用它创建了寄存器脚本。但是,我的登录每次都会将我重定向回index.php。

file1.php:

<?php
$username=$_POST['username'];
$password=$_POST['password'];
$db = new PDO('mysql:host=localhost;dbname=ismsite', 'db_username', 'db_password'); //this works
$result = $db->prepare("SELECT * FROM users WHERE username=:username AND password=:password");
$result->bindParam(':username', $username);
$result->bindParam(':password', $password);
$result->execute();
$row = $result->fetch(PDO::FETCH_NUM);
if($row > 0) {
    session_start();
            $_SESSION['userid'] = $row['user_id']; // Initializing Session
            $_SESSION['voornaam'] = $row['Voornaam']; // Initializing Session
            $_SESSION['achternaam'] = $row['Achternaam'];
            $_SESSION['adres'] = $row['adres'];
            $_SESSION['email'] = $row['email'];
            $_SESSION['username'] = $row['username'];
            $_SESSION['password'] = $row['password'];
}
header("location: profile.php");
exit();
?>

在profile.php上,我有一小段代码检查是否存在与user_id的会话。如果它没有被恢复为index.php。这表示我的用户ID会话没有设置,而我正在那里设置它。选择不会像插入一样工作,或者我有一个愚蠢的错误。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

看起来我犯了使用FETCH_NUM而不是使用FETCH_ASSOC的错误:

$row = $result->fetch(PDO::FETCH_ASSOC);

过去是

$row = $result->fetch(PDO::FETCH_NUM);