Seite 1 von 1

Wie bilde ich den hash aus RC7

Verfasst: 25.11.2007 18:30
von Battleplayer
Ich hab mich mal ein bischen im Forum umgeschaut, aber keinen mir helfenden Topic gefunden.

Mein Problem:

Ich habe auf meiner Homepage ein Login für meine Gallery.
Dieser Login soll mit den Benutzerdaten von meinem phpbb-Forum arbeiten, was auch mit phpbb2 sehr gut funktioniert hat.
Zeit phpbb3 RC7 wird mit einem Hash gearbeitet.
Meine Frage ist wie bilde ich diesen?

Wenn ich dies tue:

include" functions.php";
$hash = phpbb_hash($pass);
echo $hash;

kommt als hash immer unterschiedliche Werte zurück und niemals den Wert den ich brauche? Damit ich die functions.php von phpbb überhaupt nutzen kann muss ich ein stück der Funktion "set_config" auskommentieren sonst bekomme ich einen Fatal error!

//$sql = 'UPDATE ' . CONFIG_TABLE . "
// SET config_value = '" . $db->sql_escape($config_value) . "'
// WHERE config_name = '" . $db->sql_escape($config_name) . "'";
//$db->sql_query($sql);

//if (!$db->sql_affectedrows() && !isset($config[$config_name]))
//{
// $sql = 'INSERT INTO ' . CONFIG_TABLE . ' ' . $db->sql_build_array('INSERT', array(
// 'config_name' => $config_name,
// 'config_value' => $config_value,
// 'is_dynamic' => ($is_dynamic) ? 1 : 0));
// $db->sql_query($sql);
//}


Ich bitte euch helft mir. Ich habe schon viel Zeit reingehängt, bekomme es aber einfach nicht hin. Was mach ich falsch?

Verfasst: 25.11.2007 18:57
von Boecki91
Mit phpbb_hash() wird er gebildet und mit phpbb_check_hash($password, $hash) überprüft.

Um Die fuctions.php richtig einzubeinden muss deine Galerie ähnlich wie phpBB3 aufgebaut sein schau dir doch mal die Vorlage an:
http://olympuswiki.naderman.de/Adding_pages

Verfasst: 25.11.2007 22:00
von Battleplayer
Also meine Funktion um zu überprüfen ob das Password richtig ist sah mit phpbb2 so aus:

<?php
function login_right($id, $pass)
{
$sql = "SELECT
COUNT(*) as Anzahl
FROM
users
WHERE
ID = '".$id."' AND
Password = MD5('".$pass."');";
$result = mysql_query($sql) OR die(mysql_error());
$row = mysql_fetch_assoc($result);
mysql_free_result($result);
return $row['Anzahl'];
}
?>

Jetzt müsste man das ganze soweit umschreiben, dass statt MD5 da php_hash steht und das ganze noch funktioniert :-?

<?php
function login_right ($id, $pass)
{
include "phpbb_functions.php";

$hash = phpbb_hash($pass);

$sql = "SELECT
COUNT(*) as Anzahl
FROM
newphpbb_users
WHERE
user_id = '".$id."' AND
user_password = '".$hash."'";
$result = mysql_query($sql) OR die(mysql_error());
$row = mysql_fetch_assoc($result);
mysql_free_result($result);
echo $row['Anzahl'];
}
?>

Natürlich funktioniert das nicht :evil: .
Ich habe heute wieder 7 Stunden reingesteckt und habe es immer noch nicht geschaft :-(. An alle PHP Experten und phpbb Experten. Bitte helft mir.

Übrigens wem es weiterhelfen würde um mir zu helfen. Der Login ist von quakenet (http://tut.php-quake.net/login.html).

Verfasst: 25.11.2007 22:03
von Boecki91
wieso nimmst du nicht

Code: Alles auswählen

phpbb_check_hash($USERPASSWORT, $EINGEGEBNESPASSWORT)

Verfasst: 26.11.2007 17:51
von Battleplayer
Könntest du das mal bitte so in die Funktion reinbauen, wie du dir das vorstellst?! :cry:

Verfasst: 26.11.2007 17:58
von Boecki91
Ich weiß ja garnicht wie du sie einbauen willst :D
Du brauchst einmal den Hash aus der DB und einmal die Benutzereingabe, welceh du mit phpbb_hash() verschlüsselt hast, die jagst du dann biede gelcihzeitig durch die Funktion