silverman
Goto Top

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 :

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.

af099648b10eb36e15884fd4e1062274

Ich danke jedem von euch im Vorraus.

P.S.: Deutsch ist nicht meine Muttersprache.

face-smile

Gruß
Silverman

Content-Key: 150466

Url: https://administrator.de/contentid/150466

Ausgedruckt am: 28.03.2024 um 13:03 Uhr

Mitglied: godlie
godlie 07.09.2010 um 08:08:18 Uhr
Goto Top
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
Mitglied: dog
dog 07.09.2010 um 19:35:50 Uhr
Goto Top
nunja du musst eigentlich ncihts anderes realiseren als ein ACL System.

Der war gut face-big-smile
Ein ACL-System (nicht zu verwechseln mit einem Berechtigungs-Level-System) ist ja auch wirklich trivial zu implementieren face-wink
Mitglied: godlie
godlie 07.09.2010 um 20:09:42 Uhr
Goto Top
Tja da war doch noch ein Smiley den ich vergessen hatte face-smile
Mitglied: SILVERMAN
SILVERMAN 08.09.2010 um 11:54:02 Uhr
Goto Top
Naja ein ACL System wie dog erwähnt hat ist nicht einfach zu realisieren außerdem brauche ich eine einfache Möglichkeit die Berechtigung für meine Benutzer zu kontrollieren.
Ich habe nach ein ACL System gesucht und die meisten Beispiele sind für mein Anliegen zu komplex.

Wie kann ich die die Werte die SESSION übergeben?

Danke
Mitglied: SILVERMAN
SILVERMAN 23.09.2010 um 10:19:46 Uhr
Goto Top
Danke Leute für eure Feedback.