php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.03.2008, 15:08  
Erfahrener Benutzer
 
Registriert seit: 12.12.2007
Beiträge: 137
TeazY befindet sich auf einem aufstrebenden Ast
TeazY eine Nachricht über ICQ schicken TeazY eine Nachricht über MSN schicken
Standard rechte level script

Servus ihr lieben,

ich habe bisher ein user script geschrieben mit (registrierun, login etc.) wo alles funktioniert.

Jetzt wollte ich dieses user-script um ein rechtelevel system erweitern. Das ganze sieht wie folgt aus:

user_rights.sql
PHP-Code:
CREATE TABLE user_rights (
    
ID INT AUTO_INCREMENT PRIMARY KEY,
    
UserID TINYINT,
    
Recht VARCHAR(30)
); 
Zur erklärung:
- ID: ist die Datensatz ID, wie immer halt.
- UserID: ist die verknüpfung zum user aus der user sql tabelle (usersID = ID bei users.sql)
- Recht: hier steht dann sowas wie "Admin", "News", "Tutorial" etc.

Jedes moduil hat eine eigene rechtebezeichnung. Und für jedes recht gibt es einen datensatz. Sprich wenn user 1 mehrere rechte hat gibt es auch mehrere ´datensätze mi der userID=1.

Deshalb ist es am sinnvollsten dachte ich die rechte per ID abzufragen.
also wie immer zur db connecten und per select das ganze abfragen. dann das ganzem per whileshleife in variablen speichern.

Das problem ist jetzt nur wie kann cih die rechte eines users nachdem ich sie aus der DB ausgelesen habe und per whilschleife in eine variable ($row['recht']) gespeichert habe seitenübergreifend nutzen? bzw. wo ist mein denkfehler, denn irgendwie will das gnaze nciht so funktionieren wie iche s will.

P.S.: hab jetzt leider keinen code für die rechteanfrage zur hand da ich von vorne anfange wollte das rechtelevel zu schreiben. deshalb kann ich auch keienn code zur fehlerüberprüfung posten.
__________________
Kommt Zeit, Kommt Rat!
.visit » TNK-Studios.de
.visit » TolgaFFM @ YouTube.de
TeazY ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 25.03.2008, 15:13  
Benutzer
 
Benutzerbild von Luigi
 
Registriert seit: 22.03.2008
Beiträge: 49
PHP-Kenntnisse:
Fortgeschritten
Luigi befindet sich auf einem aufstrebenden Ast
Standard

mach dir doch einfach eine Funktion die das Rechte überprüfen für dich in die hand nimmt....

PHP-Code:
function userRights($user,$right) {
// du holst via qry alle Rechte des users $user
if($rights[$right] == "1"// vorrausgesetzt die rechte des users wurden alle in rights gespeichert...
return true;
else
return 
false;

im späteren verlauf kannst du dann eifnach auf deine funktion zurückgreifen

PHP-Code:
if(userRights(USER"newsPosten")){
// zugriff zum news posten
} else {
echo 
"ERROR";
exit;

naja vll hats ja für nen denkanstoß gereicht ^^

oh ich glaub ich hab was verwechselt ich dachte Recht wäre nur ein Bool feld und das du dann für jedes modul ne neue Bool spalte anlegst so würde die funktion das nämlich im moment verarbeiten aber wenn du nur ein recht in der Tabelle stehen hast musst du natürlich dementsprechnend anders auswerten

ich dachte viel mehr an so eine Rechte verwaltung

PHP-Code:
CREATE TABLE user_rights (
    
ID INT AUTO_INCREMENT PRIMARY KEY,
    
UserID TINYINT,
    
newsPosten INT(1NOT NULL,
    
newsEditieren INT(1NOT NULL,
    
newsLöschen INT(1NOT NULL
); 
Somit könnte man die rechte individuell anpassen.

z.b. ein user
PHP-Code:
INSERT INTO user_rights (`UserID`, `newsPosten`, `newsLöschen`, `newsEditieren`) VALUES ('11''1''1''0'); 
sodass User 11 newsPosten und newsLöschen dürfte jedoch keine news bearbeiten, sei dahingestellt ob das so sinnvoll ist

Geändert von Luigi (25.03.2008 um 15:24 Uhr).
Luigi ist offline  
Alt 25.03.2008, 15:34  
Erfahrener Benutzer
 
Registriert seit: 12.12.2007
Beiträge: 137
TeazY befindet sich auf einem aufstrebenden Ast
TeazY eine Nachricht über ICQ schicken TeazY eine Nachricht über MSN schicken
Standard

deine version würde zu viele tabellen erfordern. für jedes modul immer post/edit/delet also 3 spalten pro modul. und das dann für jeden user der mehrere rechte hat dann. wenn ich das richtig verstanden habe xD
__________________
Kommt Zeit, Kommt Rat!
.visit » TNK-Studios.de
.visit » TolgaFFM @ YouTube.de
TeazY ist offline  
Alt 25.03.2008, 15:38  
Benutzer
 
Benutzerbild von Luigi
 
Registriert seit: 22.03.2008
Beiträge: 49
PHP-Kenntnisse:
Fortgeschritten
Luigi befindet sich auf einem aufstrebenden Ast
Standard

ja naja kommt drauf an man muss ja nicht für jedes modul 3 spalten anlegen sondern könnte nen binäres rechte system verwalten
quasi
jede funktion hat ne eigene zahl 1 2 4

1 hinzufügen
2 löschen
4 editieren
dann kann man in die spalte das jeweilige rechtelevel eintragen z.b.

news 7
dann hat der benutzer 1+2+4 also alle rechte
und

artikel 3 also kann er 1+2 löschen und hinzufügen

naja is nurn gedanken anstoß aber in die richtung kannste das fortsetzen

du kannst dann auch wieder nur ein feld nehmen für alle rechte
und jedem recht eine binäre zahl zuordnen....
Luigi ist offline  
Alt 25.03.2008, 16:46  
Erfahrener Benutzer
 
Registriert seit: 12.12.2007
Beiträge: 137
TeazY befindet sich auf einem aufstrebenden Ast
TeazY eine Nachricht über ICQ schicken TeazY eine Nachricht über MSN schicken
Standard

also ich werd mir mal das rechtsystem von vorne neu überlegen. Das ganze in eine funktion zu schrieben ist sicher die beste lösung. Mien hauptziel ist jedcoh das die rechte eines users beim login überprüft werden und für die dauer des besuches der seite verfügbar sind. also eigentlich stink normales rechtlevel ab login bis logout verfügbar, halt seitenübergreifend. Mal sehen wohin mich das führt.
__________________
Kommt Zeit, Kommt Rat!
.visit » TNK-Studios.de
.visit » TolgaFFM @ YouTube.de
TeazY ist offline  
Alt 25.03.2008, 16:49  
Benutzer
 
Benutzerbild von Luigi
 
Registriert seit: 22.03.2008
Beiträge: 49
PHP-Kenntnisse:
Fortgeschritten
Luigi befindet sich auf einem aufstrebenden Ast
Standard

naja die funktion erledigt das ja auch
wenn du die früh genug einbindest dann ist sie auch script übergreifend und kann überall ausgeführt werden vom login bis zum logout

hab auch nochn snippet gefunden wegen der binärenrechte verwaltung das ist eigentlich auch immer recht geil unter php

PHP-Code:
$user_recht <<0;
$recht_news << 0// = Binär 1, Dezimal 1
$recht_forum << 1// = Binär 10, Dezimal 2
$recht_comments << 2// = Binär 100, Dezimal 4 

// user darf news und coments, nicht forum...
$user_recht $user_recht $recht_news;
$user_recht $user_recht $recht_comments;

//recht prüfen :
if($user_recht $recht_forum) {
    echo 
"ja";    
} else {
    echo 
"nein";    


Geändert von Luigi (25.03.2008 um 21:43 Uhr).
Luigi ist offline  
Alt 26.03.2008, 11:08  
Neuer Benutzer
 
Registriert seit: 06.03.2008
Beiträge: 13
redheador befindet sich auf einem aufstrebenden Ast
Standard

Wieso schreibst du die Rechte nich einfach in ne $_SESSION Variable? Hat allerdings den Nachteil dass sich der User bei Rechte änderungen einmal aus und wieder einloggen müsste...
redheador ist offline  
Alt 28.03.2008, 21:20  
Erfahrener Benutzer
 
Registriert seit: 12.12.2007
Beiträge: 137
TeazY befindet sich auf einem aufstrebenden Ast
TeazY eine Nachricht über ICQ schicken TeazY eine Nachricht über MSN schicken
Standard

ich danke erstmal für die denkanstöße. ich muss das ganze wie gesgat nochmal überdenklen und überarbeiten. Danke trotzdem für die Hilfe.
__________________
Kommt Zeit, Kommt Rat!
.visit » TNK-Studios.de
.visit » TolgaFFM @ YouTube.de
TeazY 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
PHP script Rechte auf dem Webserver ? roman.platter PHP Tipps 2008 2 03.09.2007 08:16
Automatisches Rechte setzen über Script El Barto Beitragsarchiv 2 29.07.2005 11:22
[Erledigt] Verzögerung durch included Script? Umgehen? PHP Tipps 2005-2 4 10.07.2005 19:26
[Erledigt] Relay Script PHP-Fortgeschrittene 11 01.06.2005 16:02
[Erledigt] Hilfe bei Download Verwaltungs Script PHP Tipps 2005 8 04.05.2005 10:29
Fehler bei Script, welches Ordner erstellt PsychoEagle PHP Tipps 2005 3 23.04.2005 16:03
init.d script mit php starten (root rechte bekommen) PHP-Fortgeschrittene 5 18.04.2005 17:20
PHP Script aus PHP aufrufen Stümper PHP Tipps 2004 5 26.09.2004 08:15
Rechte PHP Script vs. FTP-User PHP-Fortgeschrittene 5 23.09.2004 13:53
"das" Script oder "der" Script?? Simbo Off-Topic Diskussionen 31 16.09.2004 17:04
Tables von DB1 nach DB2 transportieren (Per script) Datenbanken 5 25.08.2004 11:55
[Erledigt] Muss ein php script für unsere schule ändern Datenbanken 1 28.06.2004 14:33
[Erledigt] PHP Script von Windows auf Linux PHP-Fortgeschrittene 7 15.06.2004 13:23

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php script user rechte verwalten, levelscript, tutotrial levelscript, php level script, rechtelevel, php rechtelevel

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:26 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