0

我在之前的登录表单中输入并提交了以下变量:

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

我使用 PDO 连接到我的 MySQL 数据库,如下所示:

require_once('agent-config.php');
    try {
$conn = new PDO(A_DB_HOST, A_DB_USER, A_DB_PASSWORD);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}

接下来,我使用变量 $login 和 $password 来选择匹配的用户名和密码:

//Create SELECT query    
$qry = $conn->prepare("SELECT * FROM members WHERE login=? AND passwd=?");
    $qry->bindParam(1, $login);
    $qry->bindParam(2, $password);

最后,我使用以下命令检查查询是否成功:

//Check whether the query was successful or not
    if($qry->execute())
    $count = $qry->rowCount();
    echo $count;
    print_r($qry);
    if($count >0) {
        //Login Successful
        session_regenerate_id();
        $member = $qry->fetch(POD::FETCH_ASSOC);
        $_SESSION['SESS_AGENT_ID'] = $member['member_id'];
        $_SESSION['SESS_login'] = $member['login'];
        session_write_close();
        header("location: agent-member-index.php");
        exit();
    }else {
        //Login failed
        header("location: login-failed.php");
        exit();
    }

但是,登录名和密码没有正确传递,我的 $count 结果为 0。我知道一个问题是存储在数据库中的密码是密码的 .md5 加密版本,所以我尝试更改$password

$password = '.md5($_POST['password']).';   

但我收到错误 T-STRING 错误。任何帮助将不胜感激!

4

1 回答 1

2
$password = '.md5($_POST['password']).';

无效,因为它是 2 个字符串,中间有一个字符串文字。我想你的意思是:

$password = md5($_POST['password']);
于 2012-11-07T06:26:32.690 回答