我想在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";
}
}
?>
我做错了什么?提前谢谢。
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
首先,当你真正这样做时,请使用salt
- http://www.md5rainbow.com/5f4dcc3b5aa765d61d8327deb882cf99
其次,您是否检查过您正在散列的密码是否与数据库中的密码匹配(例如,用户不是用盐创建的?
第三,不是引起你的问题,而是使用mysqli
。
编辑
第四@andrewsi有实际问题,代码中的$sql
变量不包含查询。
$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' "