Spacedoener
Gesperrt
Hi,
habe ein großen Problem und würde mich echt sehr freuen, wenn ihr mir da Helfen könntet.
Habe ein Login Script aus dem Tutorials "[PHP/mySQL] Login-System mit Sessions" kopiert und wollte mir den weiteren Script aus der Tutorials "Rechtesystem mit verschiedenen Benutzergruppen" in diesem einbinden...
Aber die beschreibungen und erklärungen sind sehr grob beschrieben und irgendwie funktioniert das ganze nicht.
Bitte bitte so helft mir, brauche dringend da mal Hilfe...
Das ganze sieht so aus:
script.php:
login.php
formular.php
checkuser.php
logout.php
intern.php
So das war das ganze, ich hoffe es kommt nicht viel auf einmal vors auge...
Aber die meisten änderungen ist bei den letzten script gemacht worden, also in "intern.php" ...
Würde mich echt sehr freuen, wenn hier einer mir dabei Helfen könnte und mir schreibt wie ich es machen soll, habe da keine peilung mit...
MfG
Spacedoener
habe ein großen Problem und würde mich echt sehr freuen, wenn ihr mir da Helfen könntet.
Habe ein Login Script aus dem Tutorials "[PHP/mySQL] Login-System mit Sessions" kopiert und wollte mir den weiteren Script aus der Tutorials "Rechtesystem mit verschiedenen Benutzergruppen" in diesem einbinden...
Aber die beschreibungen und erklärungen sind sehr grob beschrieben und irgendwie funktioniert das ganze nicht.
Bitte bitte so helft mir, brauche dringend da mal Hilfe...
Das ganze sieht so aus:
script.php:
PHP:
<?php
// Definition der Benutzer
$benutzer[0]["Nickname"] ="admin";
$benutzer[0]["Kennwort"] = "admin";
$benutzer[0]["Nachname"] = "Voll zugriff";
$benutzer[0]["Vorname"] = "Max";
$benutzer[0]["checkright"] = "7";
$benutzer[1]["Nickname"] = "test0";
$benutzer[1]["Kennwort"] = "abc";
$benutzer[1]["Nachname"] = "keine rechte";
$benutzer[1]["Vorname"] = "test0";
$benutzer[1]["checkright"] = "0";
$benutzer[2]["Nickname"] = "test1";
$benutzer[2]["Kennwort"] = "abc";
$benutzer[2]["Nachname"] = "Schreiben";
$benutzer[2]["Vorname"] = "test1";
$benutzer[2]["checkright"] = "1";
$benutzer[3]["Nickname"] = "test2";
$benutzer[3]["Kennwort"] = "abc";
$benutzer[3]["Nachname"] = "Bearbeiten";
$benutzer[3]["Vorname"] = "test2";
$benutzer[3]["checkright"] = "2";
$benutzer[4]["Nickname"] = "test4";
$benutzer[4]["Kennwort"] = "abc";
$benutzer[4]["Nachname"] = "löschen";
$benutzer[4]["Vorname"] = "test4";
$benutzer[4]["checkright"] = "4";
// Sie können an dieser Stelle beliebig viele Benutzer anlegen.
// Achten Sie dabei nur auf die Fortführung der Nummer.
// Aufbau der Datenbankverbindung
$connectionid = mysql_connect ("localhost", "root", "01039052");
if (!mysql_select_db ("LoginSystem", $connectionid))
{
die ("Keine Verbindung zur Datenbank");
}
// Zuerst alle Datensätze löschen um keine Dopplungen zu bekommen.
mysql_query ("DELETE FROM benutzerdaten");
// Daten eintragen
while (list ($key, $value) = each ($benutzer))
{
// SQL-Anweisung erstellen
$sql = "INSERT INTO ".
"benutzerdaten (Nickname, Kennwort, Nachname, Vorname, checkright) ".
"VALUES ('".$value["Nickname"]."', '".
md5 ($value["Kennwort"])."', '".
$value["Nachname"]."', '".
$value["Vorname"]."', '".
$value["checkright"]."')";
mysql_query ($sql);
if (mysql_affected_rows ($connectionid) > 0)
{
echo "Benutzer erfolgreich angelegt.<br>\n";
}
else
{
echo "Fehler beim Anlegen der Benutzer.<br>\n";
}
}
?>
</body>
</html>
login.php
PHP:
<?php
// Session starten
session_start ();
// Datenbankverbindung aufbauen
$connectionid = mysql_connect ("localhost", "root", "01039052");
if (!mysql_select_db ("LoginSystem", $connectionid))
{
die ("Keine Verbindung zur Datenbank");
}
$sql = "SELECT ".
"Id, Nickname, Nachname, Vorname, checkright ".
"FROM ".
"benutzerdaten ".
"WHERE ".
"(Nickname like '".$_REQUEST["name"]."') AND ".
"(Kennwort = '".md5 ($_REQUEST["pwd"])."')";
$result = mysql_query ($sql);
if (mysql_num_rows ($result) > 0)
{
// Benutzerdaten in ein Array auslesen.
$data = mysql_fetch_array ($result);
// Sessionvariablen erstellen und registrieren
$_SESSION["user_id"] = $data["Id"];
$_SESSION["user_nickname"] = $data["Nickname"];
$_SESSION["user_nachname"] = $data["Nachname"];
$_SESSION["user_vorname"] = $data["Vorname"];
$_SESSION["user_checkright"] = $data["checkright"];
header ("Location: intern.php");
}
else
{
header ("Location: formular.php?fehler=1");
}
?>
formular.php
PHP:
<?php session_start (); ?>
<html>
<head>
<title>Login</title>
</head>
<body>
<?php
if (isset ($_REQUEST["fehler"]))
{
echo "Die Zugangsdaten waren ungültig.";
}
?>
<form action="login.php" method="post">
Name: <input type="text" name="name" size="20"><br>
Kennwort: <input type="password" name="pwd" size="20"><br>
<input type="submit" value="Login">
</form>
</body>
</html>
checkuser.php
PHP:
<?php
session_start ();
if (!isset ($_SESSION["user_id"]))
{
header ("Location: formular.php");
}
?>
logout.php
PHP:
<?php
// Wird ausgeführt um mit der Ausgabe des Headers zu warten.
ob_start ();
session_start ();
session_unset ();
session_destroy ();
header ("Location: formular.php");
ob_end_flush ();
?>
intern.php
PHP:
<?php
include ("checkuser.php");
?>
<html>
<head>
<title>Interne Seite</title>
</head>
<body>
BenutzerId: <?php echo $_SESSION["user_id"]; ?><br>
Nickname: <?php echo $_SESSION["user_nickname"]; ?><br>
Nachname: <?php echo $_SESSION["user_nachname"]; ?><br>
Vorname: <?php echo $_SESSION["user_vorname"]; ?><br>
Checkright: <?php $_SESSION["user_checkright"];?>
<hr>
<?php
function checkright($userrank,$righttocheck)
{
if(($userrank & $righttocheck) == $righttocheck)
{
return true;
}
else
{
return false;
}
}
$recht[0] = 0; // 0001 (hier wird noch nicht geshiftet!)
$recht[1] = 1; // 0001 (hier wird noch nicht geshiftet!)
$recht[2] = 1<<1; // 0010 (0001 um 1 nach links: 0010);
$recht[3] = 1<<2; // 0100 (0001 um 2 nach links: 0100);
$recht[4] = 1<<3; // 1000 (0001 um 3 nach links: 1000);
$RechteKeyDesUsers = $_SESSION["user_checkright"];
$RightToCheck = $recht[4];
if(checkright($RechteKeyDesUsers,$RightToCheck))
{
//alles ok
echo "<br>okay";
}
else
{
//nix ok
echo "<br>nicht okay";
}
?>
<a href="logout.php">Ausloggen</a>
</body>
</html>
So das war das ganze, ich hoffe es kommt nicht viel auf einmal vors auge...
Aber die meisten änderungen ist bei den letzten script gemacht worden, also in "intern.php" ...
Würde mich echt sehr freuen, wenn hier einer mir dabei Helfen könnte und mir schreibt wie ich es machen soll, habe da keine peilung mit...
MfG
Spacedoener