Réutiliser les mots de passe MediaWiki

Imaginons que vous ayez un site sous MediaWiki 1.5, et que vous voulez utiliser sa base de donnée d'utilisateurs pour limiter l'accès à une page de votre conception aux seuls personnes ayant un compte sous votre Wiki. Voici la fonction PHP que j'ai utilisée dans ce cas de figure :

$wgPasswordSalt = true;

function identification($login, $password)
{
	$connexion = mysql_pconnect($serveur_mysql, $login_mysql, $pass_mysql);
	@mysql_select_db($nom_base_mysql);
	$requete  = "SELECT user_id, user_password FROM user WHERE user_name = '" . $login . "'";
	$results = mysql_query($requete, $connexion);
	$nb_results = mysql_num_rows($results);
	if($nb_results == 0)
	{
		//auth pas ok
		mysql_free_result($results);
		return "Nom d'utilisateur ou mot de passe incorrect.";
	}
	else
	{
		$dict = mysql_fetch_assoc($results);
		$db_passwd = $dict["user_password"];
		$db_id = $dict["user_id"];
		mysql_free_result($results);
		$enc_passwd = wfEncryptPassword($db_id, $password);
		if (strcmp($enc_passwd, $db_passwd) == 0)
		{
			//auth ok
			return "ok";
		}
		else
		{
			return "Nom d'utilisateur ou mot de passe incorrect. ";
		}
	}
}


function wfEncryptPassword( $userid, $password )
{
	global $wgPasswordSalt;
	$p = md5( $password);
	
	if($wgPasswordSalt)
		return md5( "{$userid}-{$p}" );
	else
		return $p;
}

(c) Nicolas Bouillon