В настоящее время я пытаюсь проверить, соответствуют ли учетные данные, предоставленные приложением c#, базе данных. Я довольно новичок в PhpBB. Я просто не могу заставить его работать. У кого-нибудь есть решение для этого?
Моя проблема: мой код всегда выводится, пароль неверный. Я думаю, что это как-то связано с их хэшированием.
Моя c# строка подключения выглядит следующим образом:
Auth_Url + "?username=" + login_textbox.Text + "&password=" + password_textbox.Text);
Мой php код выглядит следующим образом:
<?php
$link = mysqli_connect("localhost", "user","pw");
$database = mysqli_select_db($link, "dbname");
$user = $_GET['username'];
$password = $_GET['password'];
$hwid = mysqli_real_escape_string($link, $_GET['hwid']);
$tables = "phpbb_users";
$sql = "SELECT * FROM ". $tables ." WHERE username = '". mysqli_real_escape_string($link,$user) ."'" ;
$result = $link->query($sql);
if ($result->num_rows > 0) {
// Outputting the rows
while($row = $result->fetch_assoc())
{
$password = $row['user_password'];
$salt = $row['user_form_salt'];
$plain_pass = $_GET['password'];
$stored_pass = md5(md5($salt).md5($plain_pass));
function Redirect($url, $permanent = false)
{
if (headers_sent() === false)
{
header('Location: ' . $url, true, ($permanent === true) ? 301 : 302);
}
exit();
}
if($stored_pass != $row['user_password'])
{
echo "password_incorrect<br>"; // Wrong pass, user exists
}
else
{
echo "password_correct<br>"; // Correct pass
}
echo "g" . $row['group_id'] . "<br>";
if (strlen($row['hwid']) > 1)
{
if ($hwid != $row['hwid'])
{
echo "hwid_correct"; // Wrong
}
else
{
echo "hwid_incorrect"; // Correct
}
}
else
{
$sql = "UPDATE ". $tables ." SET hwid='$hwid' WHERE username='$username'";
if(mysqli_query($link, $sql))
{
echo $row['hwid'];
echo "hwid_registered"; // HWID Set
}
else
{
echo "h4"; // Else errors
}
}
}
}
?>
Большое спасибо