Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Login mit Levels - Nutzer auf bestimmte Bereichte zugreifen lassen?

Frage Entwicklung PHP

Mitglied: SILVERMAN

SILVERMAN (Level 1) - Jetzt verbinden

07.09.2010, aktualisiert 02:58 Uhr, 3098 Aufrufe, 5 Kommentare

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

01.
  
02.
<form name="login" method="post" action="login.php"> 
03.
     Benutzer 
04.
	  <br> 
05.
	  <input type="text" name="username"> 
06.
	  <br> 
07.
	 Passwort 
08.
	  <br> 
09.
	  <input type="password" name="password"> 
10.
	  <br> 
11.
      <input type="reset" class="btn" name="reset" value="reset"><input type="submit" class="btn" name="Submit" value="login"> 
12.
    </form> 
13.
 

so sieht login.php aus

01.
require ('db_connect.php'); 
02.
// Connect to server and select databse. 
03.
$tbl_name="user"; // Table name 
04.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
05.
mysql_select_db("$db_name")or die("cannot select DB"); 
06.
 
07.
// username and password sent from form 
08.
$myusername=$_POST['username']; 
09.
$mypassword=$_POST['password']; 
10.
 
11.
// To protect MySQL injection (more detail about MySQL injection) 
12.
$myusername = stripslashes($myusername); 
13.
$mypassword = stripslashes($mypassword); 
14.
$myusername = mysql_real_escape_string($myusername); 
15.
$mypassword = mysql_real_escape_string($mypassword); 
16.
 
17.
 
18.
  
19.
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'"
20.
$result=mysql_query($sql); 
21.
 
22.
 
23.
 
24.
// Mysql_num_row is counting table row 
25.
$count=mysql_num_rows($result); 
26.
// If result matched $myusername and $mypassword, table row must be 1 row 
27.
 
28.
if($count==1){ 
29.
// Register $myusername, $mypassword and redirect to file "welcome.php" 
30.
// SHOW  VORNAME and NACHNAME 
31.
$sql2="SELECT vorname,nachname FROM $tbl_name WHERE username='$myusername' and password='$mypassword'"
32.
	$db_erg = mysql_query( $sql ); 
33.
							 
34.
				if ( ! $db_erg
35.
36.
					die('Ungültige Abfrage: ' . mysql_error()); 
37.
38.
				while ($zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC)) 
39.
40.
					 
41.
					$vorname= $zeile['vorname']; 
42.
					$nachname= $zeile['nachname']; 
43.
					$level= $zeile['level']; 
44.
				 
45.
46.
	mysql_free_result( $db_erg ); 
47.
				 
48.
 // END SHOW  VORNAME and NACHNAME 
49.
	session_register("myusername"); 
50.
	session_register("mypassword"); 
51.
	session_register("vorname"); 
52.
	session_register("nachname"); 
53.
 
54.
 
55.
    header("location:welcome.php"); 
56.
     
57.
 
58.
59.
else
60.
 
61.
	 
62.
 	echo '<META http-equiv="refresh" content="0;URL=index.php">'; 
63.
 
64.
 
65.
}



so sieht db_connect.php aus

01.
$host="localhost"; // Host name 
02.
$username="myusername"; // Mysql username 
03.
$password=""; // Mysql password 
04.
$db_name="myDB"; // Database name 
05.
//$tbl_name="user"; // Table name 
06.
mysql_query("SET NAMES 'utf8'"); 
07.
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 - Klicke auf das Bild, um es zu vergrößern

Ich danke jedem von euch im Vorraus.

P.S.: Deutsch ist nicht meine Muttersprache.



Gruß
Silverman
Mitglied: godlie
07.09.2010 um 08:08 Uhr
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
Bitte warten ..
Mitglied: dog
07.09.2010 um 19:35 Uhr
nunja du musst eigentlich ncihts anderes realiseren als ein ACL System.

Der war gut
Ein ACL-System (nicht zu verwechseln mit einem Berechtigungs-Level-System) ist ja auch wirklich trivial zu implementieren
Bitte warten ..
Mitglied: godlie
07.09.2010 um 20:09 Uhr
Tja da war doch noch ein Smiley den ich vergessen hatte
Bitte warten ..
Mitglied: SILVERMAN
08.09.2010 um 11:54 Uhr
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
Bitte warten ..
Mitglied: SILVERMAN
23.09.2010 um 10:19 Uhr
Danke Leute für eure Feedback.
Bitte warten ..
Ähnliche Inhalte
Neue Wissensbeiträge
Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Router & Routing

PfSense auf Supermicro Intel Xeon D-15x8 SoC Bare Bone

Tipp von Dobby zum Thema Router & Routing ...

Windows Server

Exchange 2010 auf Windows Server 2016 und AD

(2)

Tipp von Herbrich19 zum Thema Windows Server ...

KVM

How to: Libvirt Port forwarding

(2)

Anleitung von fundave3 zum Thema KVM ...

Heiß diskutierte Inhalte
Basic
Programmierung von Windows Programmen (9)

Frage von Ghost108 zum Thema Basic ...

C und C++
Fehlendes verständiss von C und C++ (7)

Frage von zelamedia zum Thema C und C ...