Top-Themen

Aktuelle Themen (A bis Z)

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, 3107 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
Exchange Server
Raumpostfach auf bestimmte Nutzer beschränken
gelöst Frage von CommanderDOSExchange Server6 Kommentare

Hallo zusammen, ich habe im Exchange 2013 ein neues Raumpostfach angelegt. Der Raum lässt sich beim Erstellen einer neuen ...

Webentwicklung
Webseite mit Login - Automatischer Login bei einem bestimmten PC möglich?
gelöst Frage von mabue88Webentwicklung4 Kommentare

Hallo, ich habe eine Webseite entworfen, die einen Login besitzt (mittels PHP-Session). Der Webserver läuft in einem Intranet und ...

Exchange Server
NDR Kommt bei bestimmten Nutzer nicht an
Frage von SeverinWohllebenExchange Server3 Kommentare

Schöne Ostern zusammen, ich habe aktuell das Problem das bei einem einzelnen Nutzer keine NDR mehr ankommt. Bei anderen ...

Windows Update
Bestimmte Server nicht updaten lassen
Frage von WinLiCLIWindows Update6 Kommentare

Hallo zusammen, da ich im Betrieb oft höre, dass Server die vor allem Datenbanken und ähnliche sensible Technologien hosten ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 22 MinutenWindows 10

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 2 StundenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 16 StundenInternet2 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 19 StundenDSL, VDSL1 Kommentar

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement21 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...

Windows Server
Anmeldung direkt am DC nicht möglich
Frage von ThomasGrWindows Server16 Kommentare

Hallo, ich habe bei unserem Server 2016 Standard ein Problem. Keine Ahnung wie das auf einmal passiert ist. Ich ...

TK-Netze & Geräte
VPN-fähige IP-Telefone
Frage von the-buccaneerTK-Netze & Geräte14 Kommentare

Hi! Weiss noch jemand ein VPN-fähiges IP-Telefon mit dem man z.B. einen Heimarbeitsplatz gesichert anbinden könnte? Habe nur einen ...