Hey Ihr lieben. Ich glaube ich habe heute Tomaten auf den Augen.
Ich finde den Fehler nicht.
Mein Mini-Login-Script mit Session funktioniert nicht so, wie es sollte.
PHP-Code:
if (isset($_GET['loginuser'])) {
session_start();
$username = $_POST['username'];
$passwort = md5($_POST['passwort']);
if ((!isset($username)) OR (!isset($passwort)) OR (empty($username)) OR (empty($passwort)))
{
die ("Bitte Benutzernamen und Passwort eingeben!");
}
$conn = @ mysql_connect($dbhost,$dbuser,$dbpass);
if (!$conn)
{
die ("Datenbankverbindungsproblem!");
}
mysql_select_db($dbname,$conn);
$result = mysql_query("SELECT `Password`,`AdminLevel`,`ID`,`Leader` FROM `players` WHERE `Name` = '".$username."'",$conn);
$gtake = mysql_fetch_array($result,MYSQL_ASSOC);
if (!$gtake)
{
die ("Der eingegebene Benutzername ist leider nicht korrekt!");
}
if ($gtake["Password"] <> $passwort)
{
die ("Das eingegebene Passwort ist leider nicht korrekt!");
}
$AdminLevel = $gtake["AdminLevel"];
$id = $gtake["ID"];
$Leader = $gtake["Leader"];
session_register('username');
session_register('id');
session_register('Leader');
session_register('AdminLevel');
header("Location:?showall");
}
session_start();
bis hier hin geht es soweit alles.
Nun denn, die Seite wird bei erfolgreichem Login neugeladen.
(Wie man beim header sehen kann)
Nun wird die Seite aufgebaut, links die Navigation:
PHP-Code:
<?php
if (!session_is_registered('username'))
{
echo '<br /><a href="?login">Login</a>';
}
else
{
echo '<a href="?sig">Signatur</a>';
if ($_SESSION['AdminLevel'] >= 1337)
{ echo '<a href="?showall">User-Übersicht</a>'; }
if ($_SESSION['Leader'] > 0)
{ echo '<a href="?gang">Gang-Übersicht</a>'; }
echo '<a href="?logout">Logout</a>'; }
?>
Die beiden IF-Abfragen funktionieren aber nicht.
Beim Login mit dem Testuser, der die erforderlichen Rechte von AdminLevel = 1337 und Leader = 1, erscheinen beide Links NICHT in der Navigation.
Beim includen der einzelnen Seiten ist es genau so:
PHP-Code:
if (session_is_registered('username'))
{
// User-Übersicht //
if (isset($_GET['showall'])) {
if ($_SESSION['AdminLevel'] < 1337) { die("Falsche Zugangsrechte"); }
require("function.showall.inc.php");
// Logout //
} elseif (isset($_GET['logout'])) {
require("logout.php");
// GANG //
} elseif (isset($_GET['gang'])) {
if ($_SESSION['Leader'] <= 0) { die("Falsche Zugangsrechte"); }
require("function.gang.inc.php");
sofern ich die seiten per Adresszeile nach erfolgreichem Login aufrufe erscheint Falsche Zugangsrechte.
Ein echo-Befehl der $_SESSION['AdminLevel'] gibt mir nichts aus.
Wo ist der Fehler?
Ich danke Euch für die konstruktiven Antworten.
Liebe Grüße,
Florian