拜托,我需要帮助。
我编写了一个基本代码来创建登录表单,该表单将验证、检索数据并显示在我的仪表板上,但我面临以下挑战:
无论我输入的详细信息是否正确,它总是显示“无效的登录详细信息”
我不知道如何检索数据并在我的仪表板中显示登录用户的数据,我希望像在PHP中一样使用会话,但我不知道如何做到这一点,请注意,我在数据库中创建了一个新表,并且我没有使用WordPress中的默认用户表。请在下面找到我的代码,我甚至还没有创建注销:
function login_form ()
{
$loginform = \'\';
$loginform .= \'<form method="post" action="example.com/dashboard/">\';
$loginform .= \'<br />\';
$loginform .= \'<br />\';
$loginform .= \'<input type="text" size="40" name="email" placeholder="Email">\';
$loginform .= \'<br />\';
$loginform .= \'<br />\';
$loginform .= \'<input type="password" size="40" name="passcode" placeholder="Password">\';
$loginform .= \'<br />\';
$loginform .= \'<br />\';
$loginform .= \'<input type="submit" name="login_submit" value="Log In">\';
$loginform .= \'</form>\';
$loginform .= \'<br />\';
return $loginform;
}
add_shortcode(\'my_login\',\'login_form\');
function login_form_mail()
{
if (array_key_exists(\'login_submit\', $_POST))
{
global $wpdb;
$loginusername = $_POST[\'email\'];
$loginpassword = $_POST[\'passcode\'];
$retrieveUsername = $wpdb->get_var(" SELECT email FROM ".$wpdb->prefix."my_dataform WHERE email = \'$loginusername\'");
$retrievePassword = $wpdb->get_var(" SELECT passcode FROM ".$wpdb->prefix."my_dataform WHERE passcode = \'$loginpassword\'");
if ($loginusername == $retrieveUsername && $loginpassword == $retrievePassword)
{
echo \'Welcome ".$loginusername."\';
}
else
{
echo \'Invalid login details\';
}
}
}
add_action(\'wp_head\',\'login_form_mail\');