PDO连接字符串错误

时间:2013-11-19 15:19:08

标签: php pdo

这是我正在进行的项目的登录系​​统,我知道它不安全,并将在以后添加安全细节。

我想让这部分工作先行,但我遇到的问题是,当我提交表单时,如果他们的凭据错误,它总是将我带到用户被重定向到的页面。

我已经完成了研究并得出了这个代码的结论我将不会将密码存储为纯文本,这个系统只是让我开始使用PDO。

<?php
    session_start();
    //connection String
    $connection = new PDO("mysql:host=hostname;Database=databasename", "username", "0password"); 
    //Selecting function
    $smt = $connection->prepare("select user_id, email, password from account where email =         :email and password =:password");

    //setting values to textboxes
    $username = $_POST["txt_email"];
    $password = $_POST["txt_password"];

    //binding values
    $smt->bindParam(':email', $email);
    $smt->bindParam(':password', $password);

    //execution
    $smt->execute();

    //fetching data
    $row = $smt->fetch( PDO::FETCH_ASSOC ) ;  
    echo "$row[email]\n\n";
    echo "$row[password]\n\n";
    $_SESSION{"user_id"} = $row["user_id"];

    //If Statement
        if ($smt->rowCount() == 0){
            header( "location: log.html");


        } else{

            header("location: home.html");
        }
?>

2 个答案:

答案 0 :(得分:2)

$username = $_POST["txt_email"];
$smt->bindParam(':email', $email);

我猜第一个语句中的$username应为$email

答案 1 :(得分:2)

也许我错了,但"mysql:host=hostname;Database=databasename"不应该是"mysql:host=hostname;dbname=databasename"?所以dbname代替Database ...