我目前正在使用WordPress开发一个插件。我创建了一个允许用户注册的注册页面,然后这些信息存储在名为finusers的自定义数据库表中。
这就是我目前所做的:
下面的代码用于将用户注册到名为finusers的自定义表中。
function db_insert($emailAdd, $password){
global $wpdb, $formErr;
if(1 > count($formErr->get_error_messages())){
$table = $wpdb->prefix."finusers";
$checksql = "SELECT * FROM $table WHERE email_address=\'$emailAdd\'";
$checkdb = $wpdb->query($checksql);
if($checkdb !=0){
echo "Email address is registered to a user";
}else {
$data = array("email_address"=>$emailAdd, "password"=>$password);
$format = array(\'%s\');
$wpdb->insert($table,$data,$format);
echo "You have successfully registered";
}
}
}
在用户注册之后,我使用以下函数对用户进行身份验证 function authenticate($emailAdd, $password){
global $formErr;
$username = $emailAdd;
$password = $password;
$check = wp_authenticate_username_password(NULL, $username, $password);
if(1 > count($formErr->get_error_messages())){
if(is_wp_error($check)){
echo "Falied";
}else{
echo "Success";
}
}
}
我在这里遇到的问题是,wp\\u authenticate\\u username\\u password函数正在检查默认用户表以执行用户身份验证。如何使用名为finusers的自定义表而不是默认表users来进行用户身份验证。注意:我确实意识到代码很容易被sql注入。此外,关于如何改进代码的任何建议都将非常有用