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

PHP Usermanagement - Wie löse ich wie welcher User was kann und darf ?

Frage Entwicklung PHP

Mitglied: dark3zz

dark3zz (Level 1) - Jetzt verbinden

29.07.2010, aktualisiert 16:39 Uhr, 5950 Aufrufe, 5 Kommentare

Ich schreibe gerade ein Usermanagement im einfachen Stil. Folgende User sind geplant:

- MAINADMIN (Rechtestufe1) Hardcore, es kann nur einen geben
- ADMIN (Rechtestufe2)
- USER1 (Rechtestufe3)
- USER2 (Rechtestufe3)

MAINADMIN (erstellt den admin und GIBTS NUR 1x!! Admins wirds unzählige geben.)
ADMIN (kann 2 User erstellen)
USER1 | USER2 (Können nur Ihre Daten ändern)


Es wird viele ADMIN's geben. Jeder ADMIN kann 2 USER erstellen.


Es gibt immer 1 ADMIN und 2 USER = 1 PACKET das ich ja irgendwo abfragen muss wer wozu passt. Anhand eines Eintrages in der mySQL ? ZTahlencode z.b. 5436 = Admin 5436 und User1 5436 und User2 5436........


Jeder ADMIN hat quasi ne eigene Seite in der er 2 USER erstellen kann. Die 2 USER haben auch eine eigene Seite wo Sie Ihre Daten anpassen können.


Die Seiten werden dann auch per Session Authentizierung abgesichert. Da löse ich es so: Wenn in der DB bei dem USER nicht diese Zahl steht = zurück zum INDEX.


Wie löst man nun das ganze Usermanagement ? Sollte ziemlich einfach sein, da ich noch "lernender" bin ''

- Rechte abfragen per mySQL ? z.b. anhand eines Zahlencodes in der Spalte xy=Aah, das ist der und der, der passt zu dem und dem....
- Per Session ? Aber woher kommt die Information wer zu welchem passt ?


Bitte um Tipps wie man sowas handhaben kann.
Mitglied: masterG
29.07.2010 um 15:33 Uhr
accesslevel.
Kleines bespiel:
01.
<?php 
02.
if($user['accesslevel'] == 1337 || $user['accesslevel'] == 23781) { 
03.
echo "Zugang zum Adminpanel"
04.
05.
else
06.
echo "du hast keinen zugang zum adminpanel"
07.
08.
?>
Gruß
masterG
Bitte warten ..
Mitglied: dark3zz
29.07.2010 um 15:55 Uhr
hoi masterG. Danke für den Tipp. Habe fast dasselbe. Das wäre z.b. das auth.php file das ich include.

01.
  
02.
 
03.
<?php 
04.
      session_start(); 
05.
 
06.
      if (!isset($_SESSION['admin']) || !$_SESSION['admin']) { 
07.
      header('Location: ../index.php'); 
08.
      exit
09.
10.
?> 
11.
 
im index.php wo man sich anmeldet habe ich diese abfrage die mir die sessions erstellt. admin oder user.
nur eben: es gibt ja diverse admins und user..... da bin ich noch irgendwie aufm holzweg.....

01.
if ($username==$dbusername&&$password==$dbpassword&&$rights=='admin') { 
02.
                  $_SESSION['admin'] = true; 
03.
                header('Location: admin/admin.php'); 
04.
05.
 
06.
 
07.
            if ($username==$dbusername&&$password==$dbpassword&&$rights=='user') { 
08.
                  $_SESSION['user'] = true; 
09.
                header('Location: user/user.php'); 
10.
            }
Bitte warten ..
Mitglied: masterG
29.07.2010 um 16:43 Uhr
Zitat von dark3zz:
01.
  
02.
>  
03.
> <?php 
04.
>       session_start(); 
05.
>  
06.
>       if (!isset($_SESSION['admin']) || !$_SESSION['admin']) { 
07.
>       header('Location: ../index.php'); 
08.
>       exit
09.
>       } 
10.
> ?> 
11.
>  
12.
> 

also die abfrage ist unnötig.


Reicht wenn du folgendes machst:
01.
if(!$_SESSION['admin']) { 
02.
header('Location:....');
Weiters reicht es wenn du einen generellen login machst und die sessionvariable:
$_SESSION['access'] assigns und dort entweder admin oder user.

01.
if($dbusername == $username && $passwort == $dbpasswort) { 
02.
$_SESSION['access'] == $rights
03.
}
Gruß
masterG
Bitte warten ..
Mitglied: dog
30.07.2010 um 02:58 Uhr
Ich habe mal für AD-Integration das ACL-System nach MySQL/PHP übernommen.
Im ersten Anlauf brauchte ich > 800 SQL-Queries um die Gruppen und Berechtigungen richtig aufzulösen (das hat sich natürlich auf 1-2 reduziert)

Reicht wenn du folgendes machst:
if(!$_SESSION['admin']) {

Nein, tut es nicht (nur wenn man im Blinden-Modus programmiert).
01.
<?php 
02.
 
03.
	session_start(); 
04.
 
05.
	error_reporting(E_ALL|E_STRICT); 
06.
	ini_set('display_errors','On'); 
07.
	 
08.
	if(!$_SESSION['keks']) { } 
09.
 
10.
?>
01.
PHP Notice:  Undefined index: keks in /private/var/folders/4t/4t2eiwmMH8OoTNk4oJzEDk+++TI/-Tmp-/untitled_y07..php on line 8
Ausreichend wäre:
01.
 if(!@$_SESSION['keks']) {
Oder dark3zzs ursprüngliche Lösung.

Was meinst du eigentlich mit "Wer zu welchem passt"?

Rechte-Storage kann man übrigens auch mit Integern machen:
01.
<?php 
02.
 
03.
	define('PERM_LOGIN', 1);              //Binär: 00000001 
04.
	define('PERM_USER', PERM_LOGIN<<1);   //Binär: 00000010 
05.
	define('PERM_ROOT', PERM_USER<<1);    //Binär: 00000100 
06.
	define('PERM_CREATE', PERM_ROOT<<1);  //Binär: 00001000 
07.
	 
08.
	 
09.
	//jetzt erstellen wir einen Benutzer mit Login, Create und Root-Rechten 
10.
	$myPerm = PERM_LOGIN|PERM_ROOT|PERM_CREATE;//Binär: 00001101 
11.
 
12.
	//prüfen, ob ein Benutzer Login-Rechte hat	 
13.
	if(($myPerm|PERM_LOGIN) != $myPerm
14.
		die("Sie haben keine Login-Berechtigung!"); 
15.
		 
16.
	//root recht wegnehmen 
17.
	$myPerm = $myPerm^PERM_ROOT;           //Binär: 00001001 
18.
	//user recht hinzufügen 
19.
	$myPerm |= PERM_USER; 
20.
	 
21.
?>
Bitte warten ..
Mitglied: dark3zz
14.06.2012, aktualisiert um 18:59 Uhr
hat sich in der zwischenzeit erledigt, bin auch mit php gewachsen

trage am anfang nun noch einen text in die session. anhand dieses textes, kann ich diverse user zueinander ordnen, vurausgesetzt, die haben den gleichen text

den text in der session kann man auch nicht erraten.......anzeigen der eigenen schon, klaro

eigentlich eazy, man lernt nie aus.
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Sicherheit
Das FBI darf jetzt weltweit hacken (1)

Link von transocean zum Thema Sicherheit ...

Windows Server
User-ID zu Application Crash

Frage von pablovic zum Thema Windows Server ...

Router & Routing
Radius für 15 User direkt über Mikrotik- oder Ubiquiti-Router (4)

Frage von Muesliriegel zum Thema Router & Routing ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (21)

Frage von M.Marz zum Thema Windows Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...

Exchange Server
DNS Einstellung - zwei feste IPs für Mailserver (15)

Frage von ivan0s zum Thema Exchange Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...