我不是要为moodle创建一个插件,我只是创建一个外部脚本来检查用户在moodle数据库中对用户表输入表单的凭据。
现在在脚本中,用户名匹配,但密码不匹配。我已经阅读了一些关于使用盐腌的moodle的信息,但我仍然没有运气。
我正在使用这样的东西来检查密码。
$salt = 'random string of chars found in config file';
$password = md5($_POST['password'].$salt);
$query = "SELECT * FROM `user` WHERE password = '$password';";
...
任何建议都将不胜感激。
答案 0 :(得分:2)
我已经测试了代码,它对我来说工作正常,但是有些可能性你可能做错了 -
我的代码 -
<?php
if ($_POST['submit']) {
//your host detail
$link = mysql_connect('localhost', 'root', 'root') or die(mysql_error());
//your dbname
mysql_select_db('moodle_23') or die(mysql_error());
$salt = 'MG.b.;w>0B)3c.^:OqDd#?^h'; //change with your salt
$password = md5($_POST['password'] . $salt);
$query = "SELECT * FROM mdl_user WHERE username = '{$_POST['username']}' AND password = '$password'";
$result = mysql_query($query) or die(mysql_error());
echo '<pre>';
while ($row = mysql_fetch_assoc($result)) {
print_r($row);
}
}
?>
<form action='' method="post">
<p>Username = <input type="text" name ="username"/></p>
<p>Password = <input type="password" name ="password"/></p>
<input type="submit" value="submit" name="submit"/>
</form>
谢谢
答案 1 :(得分:1)
您应该使用moodle的身份验证API及其相关功能。 auth_user_login($ username,$ password)
返回:如果用户名和密码有效,则返回true;如果不是,则返回false。