php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 27.04.2010, 10:18  
Benutzer
 
Registriert seit: 27.01.2010
Beiträge: 52
PHP-Kenntnisse:
Anfänger
Lucifer befindet sich auf einem aufstrebenden Ast
Standard Denkanstoß Umsetzung Benutzerverwaltung

Verschiedene User werden in einer DB in der Tabelle User gespeichert
Der Tabellenaufbau ist im Moment
User_ID; User; Passwort; Level

Es wird aber wahrscheinlich noch eine Tabelle dazukommen
Wo es dann User Gruppen gibt
Der Tabellen aufbau soll dann so sein
Gruppen_ID; User_ID; Gruppe_01; Gruppe_02; Gruppe_03; Gruppe_04; Gruppe_05; Gruppe_06; Gruppe_07; Gruppe_08; Gruppe_09; Gruppe_10

Die Gruppen sind dann als Enum (N/J) um den zugriff zu erlauben
Diese kann ich ja leicht in der Session Ablegen als $_SESSION['Gruppe_01']

mein Kopf vorm Brett ist die Umsetzung in den einzelnen Scripten

soll dann für jede Gruppe ein eigenes Script geschrieben werden
oder ein Script für Alle Gruppen?

LÖSUNG 1:
Content_Gruppe_01.php
Content_Gruppe_02.php
Content_Gruppe_03.php
wo man nur für diese Gruppen den Zugriff hat

oder ein Script
LÖSUNG 2:
Content.php
mit inhalt
PHP-Code:
<?PHP
IF ($_SESSION['Gruppe_01']=='J')
{
     
#anzeige für Gruppe 1 Betreffenden Code
     
ECHO "<INPUT TYPE=BUTTON VALUE=Anzeige>";
}
IF (
$_SESSION['Gruppe_02']=='J')
{
     
#anzeige für Gruppe 2 Betreffenden Code
     
ECHO "<INPUT TYPE=BUTTON VALUE=Bearbeiten>";
}
IF (
$_SESSION['Gruppe_03']=='J')
{
     
#anzeige für Gruppe 3 Betreffenden Code
     
ECHO "<INPUT TYPE=BUTTON VALUE=Löschen>";
}
?>
wo ich gerade beim Korrekturlesen bin, Erkenne ich das wenn einer Rechte Gruppe_01
und Gruppe_03 hat Lösung 1 nicht funktioniert Lösung 2 jedoch schon


Dann kommt noch dazu das Ein Kennwort für die Komplette DB zu nehmen
weils recht Einfach ist oder einzelne Kennwörter für jede Gruppe was den Programmierschwierigkeitsgrad wiederum erhöht.

Suche aber keine Fertigen Script Lösungen sondern einfach bessere Ideen
die sich vieleicht sogar leichter umsetzen lassen. Beziehungsweise
eine Resonanz. Negativ und Positiv
__________________
Manchmal aber nur Manchmal sehe ich den Wald vor lauter Bäumen nicht mehr
Lucifer ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 27.04.2010, 10:21  
Erfahrener Benutzer
 
Registriert seit: 30.03.2010
Beiträge: 176
PHP-Kenntnisse:
Fortgeschritten
Tholi ist in Verruf geraten
Standard

Die Gruppen würde ich nicht als einzelne Spalten machen, sondern die Tabelle so machen das der user und die gruppe ein zusammengesetzter PR ist. Und dann fragst bei deinen einzelnen Stellen nur noch ab ob der jeweilige Nutzer mit der jeweiligen Gruppe in der Tabelle vorhanden ist.
__________________
Look at This!
Digital-Duty.DE
Für Syntax-Fehler übernehme ich keine Haftung!
Tholi ist offline  
Alt 27.04.2010, 11:02  
Erfahrener Benutzer
 
Registriert seit: 15.04.2010
Beiträge: 813
PHP-Kenntnisse:
Fortgeschritten
Paul.Schramenko befindet sich auf einem aufstrebenden Ast
Standard

Ich glaube zwar Tholi meint das selbe, aber bin mir da net sicher

Code:
#User-Tabelle
User_ID;  -> PK
User; 
Passwort

#Group-Tabelle
Group_ID;  -> PK
Name;

User_Group_xref
User_ID;   -> kombinierter PK
Group_ID; -> kombinierter PK
Dann einfach mit der User_ID & Group_ID checken ob ein Eintrag in der xref ist
Paul.Schramenko ist offline  
Alt 27.04.2010, 11:45  
Benutzer
 
Registriert seit: 27.01.2010
Beiträge: 52
PHP-Kenntnisse:
Anfänger
Lucifer befindet sich auf einem aufstrebenden Ast
Standard

Für mich zum besseren Verständnis
User Tabelle
User_ID
User

Gruppen Tabelle
Gruppen_ID
Gruppe

User_Gruppe Tabelle
User_ID Feldinhalt User_ID+Gruppen_ID
Gruppen_ID Feldinhalt User_ID+Gruppen_ID

Wenn:
User_ID=1
Gruppen_ID=1

Dann steht in der User_Gruppen Tabelle
User_ID = 11
Gruppen_ID = 11

Die SQL Abfrage sieht dann so aus

SELECT * FROM user_gruppe WHERE User_ID=11 AND Gruppen_ID=11

Hoffe das ist so richtig
Ich weis das recht
__________________
Manchmal aber nur Manchmal sehe ich den Wald vor lauter Bäumen nicht mehr
Lucifer ist offline  
Alt 27.04.2010, 11:49  
Erfahrener Benutzer
 
Registriert seit: 15.04.2010
Beiträge: 813
PHP-Kenntnisse:
Fortgeschritten
Paul.Schramenko befindet sich auf einem aufstrebenden Ast
Standard

Nein.
Dann steht in der xref:
User_ID = 1
Group_ID = 1;


das SQL könnte dann so in der art aussehen:
Code:
$userID = 1;
$groupID = 1;
$sql = 'SELECT count(user_id) 
        FROM User_Group_xref 
        WHERE User_ID='.$userID.' AND Group_ID='. $groupID;
Und wenn das Ergebnis > 0 ist, dann hat der User das recht dieser Gruppe...

Geändert von Paul.Schramenko (27.04.2010 um 11:52 Uhr). Grund: Ergänzung
Paul.Schramenko ist offline  
Alt 28.04.2010, 00:11  
Benutzer
 
Registriert seit: 27.01.2010
Beiträge: 52
PHP-Kenntnisse:
Anfänger
Lucifer befindet sich auf einem aufstrebenden Ast
Standard

Okay Dann habe ich dies hoffentlich richtig verstanden.


Zitat:
User_ID = 1
Group_ID = 1;


das SQL könnte dann so in der art aussehen:
Code:

$userID = 1;
$groupID = 1;
$sql = 'SELECT count(user_id)
FROM User_Group_xref
WHERE User_ID='.$userID.' AND Group_ID='. $groupID;

Und wenn das Ergebnis > 0 ist, dann hat der User das recht dieser Gruppe...

Ist nur noch die Frage wie Richtig ins Script Einbauen
Am Besten mit Einer Klasse Namens SchreibSiedirdoch
Oder einer Funktion Machdirdocheine

[LautDenkschreibModus]

Am Script Beginn erstmal eine Abfrage ob es gestattet ist sich die
Seite anzeigen zu lassen. Bei Nichtgestattet Meldung im Content Bereich
Ist nur Bei Direkt Aufruf der Seite nötig.
Im Menu Schon eine Abfrage Integriert Die die Menu Einträge Steuert



und im Script mittels IF Abfrage ob die Anzeige
von einen Link oder Button gemacht werden soll

Das Ganze in eine Funktion Verpacken
mit Rückgabe Wert von Richtig oder Falsch
[/LautDenkschreibModus]
__________________
Manchmal aber nur Manchmal sehe ich den Wald vor lauter Bäumen nicht mehr
Lucifer ist offline  
Alt 28.04.2010, 08:17  
Erfahrener Benutzer
 
Registriert seit: 15.04.2010
Beiträge: 813
PHP-Kenntnisse:
Fortgeschritten
Paul.Schramenko befindet sich auf einem aufstrebenden Ast
Standard

Du könntest beispielsweise,
bei jedem script welches eine Authenthifizirung braucht, oben eine Abfrage einbauen, sowas in der Art
PHP-Code:
<?php
if (!checkAuth($userID$groupID)) {
    exit(
'Keine Berechtigung für diese Seite!');
}
oder
PHP-Code:
<?php
if (!checkAuth($userID$groupID)) {
    
header('Location: index.php?error=auth');
}
Es gibt viele Möglichkeiten... such dir eine aus, oder überleg dir ne bessere... die gibt es sicherlich...

Wenn du mit OOP bzw. MVC arbeitest könntest du das auch in den einzelnen Funktionen(Action) überprüfen...
Paul.Schramenko ist offline  
Alt 28.04.2010, 13:20  
Erfahrener Benutzer
 
Registriert seit: 28.09.2008
Beiträge: 1.168
PHP-Kenntnisse:
Fortgeschritten
Koala befindet sich auf einem aufstrebenden Ast
Standard

wenn Dein User nur in genau einer Gruppe sein kann,
dann brauchst sie Tabelle User_Group_xref nicht.


Dann reicht ne Verknüpfung über Fremdschlüssel:

Tabelle User
id ---- name ---- groupid

Tabelle Group
id --- groupname
Koala ist offline  
Alt 28.04.2010, 13:27  
Erfahrener Benutzer
 
Registriert seit: 15.04.2010
Beiträge: 813
PHP-Kenntnisse:
Fortgeschritten
Paul.Schramenko befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Koala Beitrag anzeigen
wenn Dein User nur in genau einer Gruppe sein kann,
dann brauchst sie Tabelle User_Group_xref nicht.


Dann reicht ne Verknüpfung über Fremdschlüssel:

Tabelle User
id ---- name ---- groupid

Tabelle Group
id --- groupname


Nope:

Ein User kann in mehreren Gruppen sein.
In einer Gruppe können mehrere User sein.

Ergo: N zu M - Daher brauchen wir eine Zwischentabelle...
__________________
"My software never has bugs, it just develops random features."
"Real programmers don't comment. If it was hard to write, it should be hard to understand!"
Positive Bewertungen sind nicht unwillkommen...
Paul.Schramenko ist offline  
Alt 28.04.2010, 14:00  
Erfahrener Benutzer
 
Registriert seit: 28.09.2008
Beiträge: 1.168
PHP-Kenntnisse:
Fortgeschritten
Koala befindet sich auf einem aufstrebenden Ast
Standard

ich hab doch geschrieben:
Zitat:
wenn Dein User nur in genau einer Gruppe sein kann
Zitat:
Ein User kann in mehreren Gruppen sein.
woher willst Du das denn wissen ?

Zitat:
In einer Gruppe können mehrere User sein.
so what ? das stört bei nicht.
Koala 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
Professionelle und zeitnahe Umsetzung Ihrer Projekte STeresiak Beruflich 0 20.04.2010 13:19
Bitte um Hilfe bei der Umsetzung mit wordwrap ePole PHP Tipps 2010 9 05.02.2010 16:22
Denkanstoß: Zeile ändern im Dokument warstel PHP Tipps 2009 6 27.11.2009 12:01
Professionelle und zeitnahe Umsetzung Ihrer Projekte STeresiak Beitragsarchiv 0 26.10.2009 16:12
Brauche Denkanstoß - Daten auslesen Timo PHP Tipps 2009 5 04.05.2009 11:30
[Erledigt] denkanstoß - daten splitten Screeze PHP Tipps 2009 21 31.01.2009 15:53
Caching Denkanstoß PenthousePauper Software-Design 13 24.01.2009 16:22
[Erledigt] Versandkosten ermitteln. Denkanstoß gesucht! litterauspirna PHP Tipps 2008 2 06.09.2008 10:42
OOP Umsetzung cycap PHP-Fortgeschrittene 26 17.06.2008 19:13
Benötige einen Denkanstoß bei Daten auslesen! Picard PHP Tipps 2007 14 08.06.2007 00:08
Probleme bei der Umsetzung Kein Genie PHP Tipps 2007 3 02.03.2007 15:43
Denkanstoß Newssystem mit Datumsangabe Matthiasnet PHP Tipps 2005-2 1 02.09.2005 23:18
register_globals, umsetzung, form, edit sql TimmaY PHP Tipps 2005-2 9 09.08.2005 22:31
Hilfe bei Umsetzung Datenbankanwendung PHP Tipps 2004 1 03.11.2004 20:24
Umsetzung eines Pluginsystems /tmp PHP-Fortgeschrittene 18 14.09.2004 22:58

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
http://www.php.de/php-einsteiger/67343-denkanstossy-umsetzung-benutzerverwaltung.html, php benutzerverwaltung, php benutzerverwaltung script, benutzerverwaltung php, php sql benutzerverwaltung, benutzerverwaltung tabellen, benutzerverwaltung php script, php oop benutzerverwaltung, aufbau benutzerverwaltung, benutzerverwaltung aufbau, php benutzerverwaltung oop, php script benutzerverwaltung, benutzerverwaltung php sql, oop benutzerverwaltung, php sql userverwaltung, benutzerverwaltung oop, benutzerverwaltung php oop, php benutzerverwaltung 2010, beispiel nutzerverwaltung aufbauen php, php benutzerverwaltung objektorientiert

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