2

我想在 WordPress 中为我的消费者进行自定义登录,但出现此错误:

WordPress database error: []
SELECT * FROM wp_members WHERE email='example@example.org' and password='5f4dcc3b5aa765d61d8327deb882cf99'
Wrong Username or Password


<?php
    $email1 = $_POST['email'];
    $password = $_POST['password'];
    $encrypted_mypassword=md5($password);
    $email = $_POST['email'];
    $password = $_POST['password'];


    if(isset($_POST['submit'])) {
        global $wpdb;
        $table_name = $wpdb->prefix . "members";
        $wpdb->show_errors();
        $sql= $wpdb->get_results(" SELECT * FROM $table_name WHERE email='$email1' and password='$encrypted_mypassword' ");
        $wpdb->print_error();

        $result=mysql_query($sql);
        // Mysql_num_row is counting table row
        $count=mysql_num_rows($result);

        // If result matched $myusername and $mypassword, table row must be 1 row
        if($count==1){
            // Register $myusername, $mypassword and redirect to file "login_success.php"
            session_register("email");
            session_register("encrypted_mypassword"); 
            header("location:login_success.php");
        }
        else {
            echo "Wrong Username or Password";
        }
    }

?>

我做错了什么?提前致谢。

4

3 回答 3

0

salt当你真正这样做时,首先使用 a - http://www.md5rainbow.com/5f4dcc3b5aa765d61d8327deb882cf99

其次,您是否检查过您正在散列的密码是否与数据库中的密码匹配(例如,用户不是用盐创建的?)

第三,不会导致您的问题,而是使用mysqli.

编辑

第四 @andrewsi 有实际问题,$sql您代码中的 var 不包含您的查询。

于 2013-09-23T19:06:55.573 回答
0
$sql= $wpdb->get_results  ->remove this line

这从表中获取信息,因此 $sql 现在适合查询。

  $result=mysql_query($sql)  

这里的 $sql 应该是

$sql=" SELECT * FROM $table_name WHERE email='$email1' and password='$encrypted_mypassword' "
于 2013-09-23T19:09:59.490 回答
0

Wordpress$wpdb->get_results将根据您的查询返回数据,您不能在其中使用此函数的结果mysql_query()

您可以count()用来检查是否$sql包含数据

$count=count($sql);

删除这些

/*
$result=mysql_query($sql);
        // Mysql_num_row is counting table row
        $count=mysql_num_rows($result);


*/

类参考 wpdb

于 2013-09-23T19:13:00.520 回答