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

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, 5980 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 ..
Ähnliche Inhalte
Administrator.de Feedback
Verbindung zu anderem user wieder lösen mit smartphone
Frage von LochkartenstanzerAdministrator.de Feedback1 Kommentar

Moin, Hallo Frank, Ich habe nur ein "kleines" smartphone (4") und habe heute festgestellt, daß es schwirig ist, eine ...

Windows 7
Programme die ein User starten darf festlegen
gelöst Frage von Roadrunner0815Windows 76 Kommentare

Hallo an alle! Ich bin auf der Suche nach einem Tool oder ähnlichem, was folgende Einstellungen erlaubt: Der User ...

Windows Server
Freigabe: Nur ein User darf auf den Ordner zugreifen...
Frage von FA-jkaWindows Server7 Kommentare

dieser meldet sich allerdings mit einem gemeinschaftlich genutzten Konto im ActiveDirectory an (=gewachsene, nicht veränderbare Firmenpolitik - bitte nicht ...

Linux Netzwerk
Vsftpd User darf nicht aus sein HOME Verzeichniss raus
gelöst Frage von danijelLinux Netzwerk12 Kommentare

Hallo Freunde, vielleicht kann mir einer hier helfen. Ich habe vsftpd unter openSuse 12.3 laufen. Der FTP Dienst läuft ...

Neue Wissensbeiträge
Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 38 MinutenViren und Trojaner

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 4 StundenRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 3 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 4 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Heiß diskutierte Inhalte
Vmware
Installation Windows 10 VMware
Frage von Ghost108Vmware17 Kommentare

Hallo zusammen, versuche gerade mit Hilfe des vshpere clients eine virtuelle Windows 10 maschine aufzusetzen. 1. virtuelle Maschine erstellt ...

Exchange Server
SBS 2011 E-Mails können gesendet werden, aber nicht von extern empfangen
Frage von andreas1234Exchange Server14 Kommentare

Hallo Community, ich habe das Problem, dass seit knapp zwei Wochen die E-Mails von meinem SBS 2011 einwandfrei gesendet ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell8 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...