Hace tiempo estuve intentándolo y tampoco lo conseguí pero lo he vuelto a intentar y ahora sí que me funciona correctamente.
Necesitaba comparar la contraseña que me introducían con la almacenada en un foro phpbb3. Este es el resultado:
Código PHP:
// Poner vuestros valores
$localhost = 'localhost';
$username = 'username_db';
$password = 'pass';
$db_name= 'name_db';
mysql_connect("$localhost", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$username=$_POST["username"];
$password=$_POST["password"];
$username = stripslashes($username);
$password = stripslashes($password);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
define('IN_PHPBB', true);
include("phpbb3/includes/functions.php"); // Poner vuestra ruta a este archivo
$sql = "SELECT * FROM phpbb_users WHERE username='".$username."'";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
mysql_free_result($result);
if (!$row)
{
// Usuario no existe
}
if (!phpbb_check_hash((string) $password, $row['user_password']))
{
echo "COMPARACION FALLIDA";
}
else
{
echo "COMPARACION CORRECTA";
}