Login mit Levels - Nutzer auf bestimmte Bereichte zugreifen lassen?
Hallo Leute,
Ich habe folgendes Problem:
Ich habe ein Loginscript geschrieben und habe 30 users aus 4 Abteilungen und möchte gerne fogendes realisieren:
Wenn der user xy aus der Abteilung (Buchhaltung) einloggt nur die Sidebar boxen mit Inhalt zur Buchhaltung sieht und die anderen Boxen mit deaktivierten Links erscheinen. so zu sagen ein Login mit Level System bestimmt durch eine DB user tabelle mit folgender Struktur :
wobei 1 für Abteilung steht also die users von Abteilung sollen nur Inhalt zu Abteilung 1 sehen und 2 für Abteilung 2 und so weiter.
so sieht meine login Maske aus
so sieht login.php aus
so sieht db_connect.php aus
Wie kann ich das realisieren? und habe ich in meinem code Fehler in der Session hanlding?
Beigefügt ist eine grafische Darstellung für mein Vorhaben.
Ich danke jedem von euch im Vorraus.
P.S.: Deutsch ist nicht meine Muttersprache.
Gruß
Silverman
user | pass | name | level |
---|---|---|---|
mark | 1234 | Mark Mustermann | 1 oder 2 oder 3 oder 4 |
wobei 1 für Abteilung steht also die users von Abteilung sollen nur Inhalt zu Abteilung 1 sehen und 2 für Abteilung 2 und so weiter.
so sieht meine login Maske aus
<form name="login" method="post" action="login.php">
Benutzer
<br>
<input type="text" name="username">
<br>
Passwort
<br>
<input type="password" name="password">
<br>
<input type="reset" class="btn" name="reset" value="reset"><input type="submit" class="btn" name="Submit" value="login">
</form>
so sieht login.php aus
require ('db_connect.php');
// Connect to server and select databse.
$tbl_name="user"; // Table name
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// username and password sent from form
$myusername=$_POST['username'];
$mypassword=$_POST['password'];
// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){
// Register $myusername, $mypassword and redirect to file "welcome.php"
// SHOW VORNAME and NACHNAME
$sql2="SELECT vorname,nachname FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$db_erg = mysql_query( $sql );
if ( ! $db_erg )
{
die('Ungültige Abfrage: ' . mysql_error());
}
while ($zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC))
{
$vorname= $zeile['vorname'];
$nachname= $zeile['nachname'];
$level= $zeile['level'];
}
mysql_free_result( $db_erg );
// END SHOW VORNAME and NACHNAME
session_register("myusername");
session_register("mypassword");
session_register("vorname");
session_register("nachname");
header("location:welcome.php");
}
else {
echo '<META http-equiv="refresh" content="0;URL=index.php">';
}
so sieht db_connect.php aus
$host="localhost"; // Host name
$username="myusername"; // Mysql username
$password=""; // Mysql password
$db_name="myDB"; // Database name
//$tbl_name="user"; // Table name
mysql_query("SET NAMES 'utf8'");
mysql_query('SET CHARACTER SET utf8');
Wie kann ich das realisieren? und habe ich in meinem code Fehler in der Session hanlding?
Beigefügt ist eine grafische Darstellung für mein Vorhaben.
Ich danke jedem von euch im Vorraus.
P.S.: Deutsch ist nicht meine Muttersprache.
Gruß
Silverman
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-Key: 150466
Url: https://administrator.de/contentid/150466
Ausgedruckt am: 28.03.2024 um 13:03 Uhr
5 Kommentare
Neuester Kommentar
Hallo,
nunja du musst eigentlich ncihts anderes realiseren als ein ACL System.
Ich würde mir hierfür in der Session das jeweilige Level hinterlegen,
und dann bei jeglicher ausgabe kontrollieren ob derjenige das auch darf....
Achja Passwörter im Klartext in der Datenbank speichern ist schwachsinnig .....
Ich würde nicht nur die Variablen in der Session registrieren sondern ihnen auch werte übergeben $_SESSION["vorname"] = $vorname
nunja du musst eigentlich ncihts anderes realiseren als ein ACL System.
Ich würde mir hierfür in der Session das jeweilige Level hinterlegen,
und dann bei jeglicher ausgabe kontrollieren ob derjenige das auch darf....
Achja Passwörter im Klartext in der Datenbank speichern ist schwachsinnig .....
Ich würde nicht nur die Variablen in der Session registrieren sondern ihnen auch werte übergeben $_SESSION["vorname"] = $vorname