sobota, 15 grudnia 2007

phpBB3 i kodowanie hasła

Jak już pewnie wiele osób zauważyło w nowym phpBB zostało zmienione kodowanie hasła, szkoda tylko, że na polskiej stronie zajmującej się tym nie jest nic o tym wspomniane. No ale do rzeczy, oto link do frameworka dzięki któremu zmiana w phpBB3 będzie dla nas nieodczuwalna.

Wystarczy już tylko dodać do kodu w którym używamy loginu oraz hasła z forum dodać:

$sql = "SELECT * FROM phpbb_users WHERE username = '".$_POST['user_login']."'";
$result = @mysql_query($sql, $connection);

$count=mysql_num_rows($result);

if ($count != 0)
{

while ($sql = mysql_fetch_object($result))
{
$_SESSION['myusername'] = $sql -> username;
$_SESSION['dbpass'] = $sql -> user_password;
$_SESSION['rank'] = $sql -> user_rank;
$_SESSION['email'] = $sql -> user_email;
}
}


include "PasswordHash.php"; //nazwa pliku w którym zapisany jest kod naszego frameworka
$t_hasher = new PasswordHash(8, TRUE);
$hash = $_SESSION['dbpass'];
$check = $t_hasher->CheckPassword($_POST['user_pass'], $hash);
unset($t_hasher);

//nie możemy również zapomnieć o użytkownikach którzy rejestrowali się kiedy forum obsługiwało tylko md5

if (md5($_POST['user_pass']) == ($_SESSION['dbpass'])){
$checkmd = '1';
}
else{
$checkmd = '0';
}

if ($check || $checkmd == '1')
$correct_pass = '1';
else
$correct_pass = '0';

if ($correct_pass == 1)){
zalogowany :D:D:D
}

Mam nadzieje, że kod jest zrozumiały a implementacja nie przysporzy nikomu większego problemu.

Brak komentarzy: