Moin!
Hallo Camping_RIDER,
vielen Dank nochmals für deine Hilfe und deine Erklärung, allerdings habe ich auch bei deiner Version ein Problem, ich benötige dieses $object = userDaten($mysqli, session_id()); allerdings bevor ich dieses $object->user_type == 'administrator') abfragen kann, und nachdem ich eingeloggt bin.
Was gefällt Dir an dieser Lösung nicht?
// Jetzt können wir also die Funktion "password_verify" in jedem Fall verwenden:
if ( ! password_verify (trim($_POST['passwort']), $HashedPassword) ) {
show_login(trim($_POST['username']), 'Passwort falsch');
exit;
}
// else:
// ultimative Zerstörung womöglich bestehender Session-Daten
// Registrierung der Daten in der Session und
// Weiterleitung zur geschützten Startseite
session_start();
session_unset();
session_regenerate_id(true);
if ( isset($_POST['register_ip']) && $_POST['register_ip']) {
$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
}
$_SESSION['username'] = $_POST['username'];
$_SESSION['groups'] = getGroups($_POST['username']);
$_SESSION['last_action'] = date('U');
und die Funktion:
function getGroups($username) {
//gibt einen Hash mit allen Gruppen , zu denen der sich anmeldenden Benutzer gehört, zurück
$r=array();
$r['standard-user']=true;
$arRows = file(GROUP_FILE); #Das holt alle Gruppennamen aus der Datenbasis
foreach($arRows as $row) {
$row=trim($row);
if ($row != '' && '#' != $row{0} && strpos($row, ':') ) {
list($group, $rest)=explode(HTGROUP_SEPARATOR, $row);
$arUsers=explode(HTGROUP_USER_SEPARATOR, $rest);
foreach ($arUsers as $s) {
$s=trim($s);
if ($s == $username) {
$r[$group]=true;
}
}
}
}
return $r;
}
Jörg Reinholz