php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 09.08.2005, 18:55  
Erfahrener Benutzer
 
Registriert seit: 06.08.2003
Beiträge: 453
PHP-Kenntnisse:
Fortgeschritten
Mano
Standard Frei editierbare Rechte

Hallo,

ich bin gerade dabei eine neue Rechtestrucktur für meine Internseiten anzulegen. In meiner Benutzertabelle (MySql) ist bereits eine Spalte "Rechte" in denen jedem Benutzer eine Gruppen-ID zugeordenet ist.

Ich habe mir folgendens gedacht: Ich erstelle eine neue Tabelle in der alle Rechte-Gruppen aufgeführt sind. In dieser sollen außerdem die Rechte der Einzelnen Seiten[.php] (als Spalten in der Datenbank: Ja/Nein) aufgeführt sein.

Die Gruppenrechte werden dann über das Interface editierbar sein.

1. Was würdet ihr anders bzw. besser machen?
2. Wie sollte die Rechte-Abfrage in einer Seite[.php] funktionieren? (Vielleicht so, das nicht in jeder Datei eine DB-Anfrage gemacht werden muss)
Mano ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 09.08.2005, 19:00  
Matthias959
Gast
 
Beiträge: n/a
Standard

Zu 1.:
z.B.
Admin|Moderator|...
-----------------------------
1 | 0 | abc
Zu 2.:
Du solltest bei der Anmeldung alle Daten aus der Datenbank auslesen und in einer Session speichern. Und dann halt einfach abfragen:
PHP-Code:
<?php
if($_SESSION["admin"]==1){
...
}
else{
echo 
"Du bist kein Admin!";
}


?>
 
Alt 09.08.2005, 19:26  
Erfahrener Benutzer
 
Registriert seit: 06.08.2003
Beiträge: 453
PHP-Kenntnisse:
Fortgeschritten
Mano
Standard

Die Tabelle hatte ich mir so vorgestellt:

RechteID | Name | site1.php | site2.php | site3.php | site4.php |
------------------------------------------------------------------
1 | Admin | Ja | Ja | Ja | Ja |
2 | User | Ja | Nein| Nein | Ja |

Die RechteID findet sich dann in der BenutzerTabelle wieder.

@Matthias959 Oder wie meinst du das bei dir?

Ja, ich frage bereits über Session die Gruppen-ID ab. Aber Wenn ich eine extra Tabelle dafür anlege muss ich die ja aus der Tabelle nochmal auslesen zu der zugehörigen Seite und zughörigen Benutzer. Wie ist dieses sinnvoll zulösen. Da wenn ich eine neue Gruppe anlege nichts in meinen Scripten ändern will?!
__________________
www.webdeveloperfactory.de - Der Blog und Ratgeber für Webentwickler mit zahlreichen Informationen
Mano ist offline  
Alt 09.08.2005, 19:32  
Matthias959
Gast
 
Beiträge: n/a
Standard

Also noch mal von vorne:
Du hasst eine Tabelle mit allen User Informationen wir z.B. Name email oder auch passwort. Nun fügst du dort noch ein Feld ein mit der Bezeichnung "Admin" und dem Wert 1 oder 0.
Beim Anmelden Speichersten du nun den Wert in einer Session.

Auf der geschützten Seite überprüfst du jetzt einfach ob $_SESSION["Admin"] den Wert 1 oder 0 hat.

Verstanden?
 
Alt 09.08.2005, 19:35  
Erfahrener Benutzer
 
Registriert seit: 06.08.2003
Beiträge: 453
PHP-Kenntnisse:
Fortgeschritten
Mano
Standard

Was soll das für einen Sinn haben?

Haste meine Frage nicht verstanden?
__________________
www.webdeveloperfactory.de - Der Blog und Ratgeber für Webentwickler mit zahlreichen Informationen
Mano ist offline  
Alt 09.08.2005, 19:38  
Matthias959
Gast
 
Beiträge: n/a
Standard

Doch doch,
aber welchen Sinn macht es, dass in einer Tabelle zu speichern?
Oder willst du die Rechte der Seite dynamisch ändern?
 
Alt 09.08.2005, 19:41  
Erfahrener Benutzer
 
Registriert seit: 06.08.2003
Beiträge: 453
PHP-Kenntnisse:
Fortgeschritten
Mano
Standard

Oder willst du die Rechte der Seite dynamisch ändern?

Ja, genau das hatte ich auch oben bereits gesagt. Statisch habe ich es Bereits!

Tabelle Rechte siehe oben!

Meine Benutzertabelle verfüght noch über eine Spalte "RechteID" in der die Zuweisung für die neue Tabelle (die bist jetzt noch nicht existiert) statt finden soll. In der Gruppenrechtetabelle dann die Seitenzuordnung.
Mano ist offline  
Alt 09.08.2005, 20:11  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard Re: Frei editierbare Rechte

Zitat:
Zitat von Mano
1. Was würdet ihr anders bzw. besser machen?
2. Wie sollte die Rechte-Abfrage in einer Seite[.php] funktionieren? (Vielleicht so, das nicht in jeder Datei eine DB-Anfrage gemacht werden muss)
Hi "Mano".

Zu 1:
Deine Anforderungen bestimmen, was gut ist und was nicht, was ungenügend, was ausreichend, was übertrieben. Vielleicht reicht es dir ja auch ein UNIX-artiges Berechtigungssystem, in dem jeder Datei genau ein Benutzer und eine Gruppe zugeordnet ist und du für Benutzer, Gruppe und den Rest der Welt Rechte setzen kannst.

Zu 2:
Die Altenative zu einer DB-Abfrage pro Request wäre ja, dass du die Rechte des Benutzers an allen Ressourcen beim ersten Request abfrägst und dann in die Session speicherst. In dem Fall solltest du Bedenken, dass ein Mechanismus ganz wichtig werden könnte, dieses Chacheing aufzuheben, nämlich dann, wenn du ganz schnell eine Seite dicht machen musst. Könntest also bei jeder Änderung an den Rechten einen Timestamp in eine Datei schreiben und der wird dann mit dem Cache der Zugriffsrechte n der Session verglichen. Ob sich das lohnt ist die andere Frage.

Basti
Basti ist offline  
Alt 20.08.2005, 15:33  
Erfahrener Benutzer
 
Registriert seit: 06.08.2003
Beiträge: 453
PHP-Kenntnisse:
Fortgeschritten
Mano
Standard

Hallo,

man könnte doch in jeder Datei (Dateistelle) Die Rechte so Abfragen:

PHP-Code:
<?php

$seitename 
test.php;

include(
"db.php"); // in der Include ist die Abfrage zur Datenbank mit dem $seitenamen

Die Variable $seite wird dabei als Array ausgelesen.

if(
$session["user_rechte"] == $seite) {
// anzeigen
}

?>
Oder hat jemand eine bessere Idee?
__________________
www.webdeveloperfactory.de - Der Blog und Ratgeber für Webentwickler mit zahlreichen Informationen
Mano ist offline  
Alt 20.08.2005, 17:34  
Erfahrener Benutzer
 
Registriert seit: 27.08.2007
Beiträge: 391
jens76 befindet sich auf einem aufstrebenden Ast
Standard

na wie wäre es wenn du die rechtevergabe auf einer binäen zahl basieren läßt

und dann für jede seite eine maske

zb:

00101011101
00000010000

das binär vergleichen und wenn die 1 in der maske an der rechten stelle is kann er rein
jens76 ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] ordner rechte setzen sich automatisch zurück wiegia086 PHP-Fortgeschrittene 1 05.04.2008 13:55
rechte level script TeazY PHP Tipps 2008 7 28.03.2008 21:20
nach chmod keine FTP Rechte mehr... GELight PHP Tipps 2006 3 11.07.2006 20:24
Fotos hochladen / Rechte PHP Tipps 2006 1 18.05.2006 15:05
MySQL & PhpMyAdmin - Welche Rechte vergebt Ihr den Anwen tekknotrip Datenbanken 4 15.05.2006 12:17
kann keine 0777 Rechte vergeben Calli PHP Tipps 2006 6 29.03.2006 21:20
Rechte eines Benutzers bei shell_exec Server, Hosting und Workstations 5 05.03.2006 15:51
Rechte auf Server Server, Hosting und Workstations 1 06.11.2005 11:32
Automatisches Rechte setzen über Script El Barto Beitragsarchiv 2 29.07.2005 11:22
problem beim auslesen der rechte eines verzeichnisses sysop PHP Tipps 2005-2 2 10.07.2005 23:11
[Erledigt] Bilder frei positionieren und von Text umfließen lassen. HTML, Usability und Barrierefreiheit 10 24.04.2005 00:05
Suspekter Fehler: Keine Rechte auf der Datenbank Datenbanken 5 20.04.2005 06:31
Rechte überprüfen faux Datenbanken 2 23.03.2005 07:42
Mit PHP erzeugte Dateien besitzen die falschen Rechte PHP Tipps 2004 3 14.09.2004 12:54
Ordner per Skript erstellen --> Rechte Problem PHP Tipps 2004 2 06.07.2004 14:19

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
rechtelevel bezeichnungen

Alle Zeitangaben in WEZ +2. Es ist jetzt 07:37 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.