Hallo,
ich hab ein Problem mit der Zugriffsbeschrenkung auf meiner Loginseite. Das Problem ist darin das wenn ein Benutzer in mehreren Gruppen (group_id) Mitglied ist er sich nicht mehr einloggen kann. Benutzer die nur in einer Gruppe sind hingegen schon.
In der Datenbank hab ich folgende zwei Tabellen:
siehe Anhang
index.php
main.php
Wo ist der fehler das sich der Benutzer der zu mehreren Gruppen gehört nicht einloggen kann? Hat jemand eine lösung oder kann mir sagen was ich ändern muss das es geht?
PS: Der Aufbau der Tabelle ist fest vorgegeben und kann nicht geändert werden.
Danke
kasimir
ich hab ein Problem mit der Zugriffsbeschrenkung auf meiner Loginseite. Das Problem ist darin das wenn ein Benutzer in mehreren Gruppen (group_id) Mitglied ist er sich nicht mehr einloggen kann. Benutzer die nur in einer Gruppe sind hingegen schon.
In der Datenbank hab ich folgende zwei Tabellen:
siehe Anhang
index.php
PHP:
<?php require_once('../../../Connections/news.php'); ?>
<?php
session_start();
$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($accesscheck)) {
$GLOBALS['PrevUrl'] = $accesscheck;
session_register('PrevUrl');
}
if (isset($_POST['benutzername'])) {
$loginUsername=$_POST['benutzername'];
$password=md5($_POST['passwort']);
$MM_fldUserAuthorization = "pmf_user_group.group_id";
$MM_redirectLoginSuccess = "main.php";
$MM_redirectLoginFailed = "index.php?f=1";
$MM_redirecttoReferrer = true;
mysql_select_db($database_news, $news);
$LoginRS__query=sprintf("SELECT pmf_user.name, pmf_user.pass, pmf_user.id, pmf_user_group.group_id FROM pmf_user, pmf_user_group WHERE pmf_user.name='%s' AND pmf_user.pass='%s' AND pmf_user.id=pmf_user_group.user_id"",
get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $password : addslashes($password));
$LoginRS = mysql_query($LoginRS__query, $news) or die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);
if ($loginFoundUser) {
$loginStrGroup = mysql_result($LoginRS,0,'pmf_user_group.group_id');
$GLOBALS['MM_Username'] = $loginUsername;
$GLOBALS['MM_UserGroup'] = $loginStrGroup;
session_register("MM_Username");
session_register("MM_UserGroup");
if (isset($_SESSION['PrevUrl']) && true) {
$MM_redirectLoginSuccess = $_SESSION['PrevUrl'];
}
header("Location: " . $MM_redirectLoginSuccess );
}
else {
header("Location: ". $MM_redirectLoginFailed );
}
}
?>
main.php
PHP:
<?php
session_start();
$MM_authorizedUsers = "6";
$MM_donotCheckaccess = "false";
function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) {
$isValid = False;
if (!empty($UserName)) {
$arrUsers = Explode(",", $strUsers);
$arrGroups = Explode(",", $strGroups);
if (in_array($UserName, $arrUsers)) {
$isValid = true;
}
if (in_array($UserGroup, $arrGroups)) {
$isValid = true;
}
if (($strUsers == "") && false) {
$isValid = true;
}
}
return $isValid;
}
$MM_restrictGoTo = "index.php?f=2";
if (!((isset($_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers, $_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {
$MM_qsChar = "?";
$MM_referrer = $_SERVER['PHP_SELF'];
if (strpos($MM_restrictGoTo, "?")) $MM_qsChar = "&";
if (isset($QUERY_STRING) && strlen($QUERY_STRING) > 0)
$MM_referrer .= "?" . $QUERY_STRING;
$MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . "accesscheck=" . urlencode($MM_referrer);
header("Location: ". $MM_restrictGoTo);
exit;
}
?>
Wo ist der fehler das sich der Benutzer der zu mehreren Gruppen gehört nicht einloggen kann? Hat jemand eine lösung oder kann mir sagen was ich ändern muss das es geht?
PS: Der Aufbau der Tabelle ist fest vorgegeben und kann nicht geändert werden.
Danke
kasimir
Attachments
Last edited by a moderator: