benutzerechte checken!

macropode

Erfahrenes Mitglied
hallo ich habe mal wieder ein problem.
ich habe auf meiner hp einen login bereich eingebaut welcher wwunderbar funktioniert. jetzt möchte ich z.b. auf der seiter Termine abfragen ab der eingelogte benutzer insert rechte hat und somit neuer termine in die datenbank einpflegen darf.

habe so angefangen:
$sql = 'show grants for '.$_SESSION['Name'].'@localhost';
$erg = mysql_query($sql);
while ( $zeile = mysql_fetch_row($erg) )

da werden mir die rechte auch ausgegeben, jedoch habe ich kein plan wie ich jetzt explizit nach insert rechten fragen kann.

bitte helft mir!
 
irgendwie hast du einen komischen query.
mag sein, das ich nur nicht weiß wie das geht, aber ich kenn keinen "show grant" befehl im sql.

tip: versuchs simpel mit "SELECT ..........";
 
also mit show grants es. wenn ich über echo die varable ausgebe stehen die rechte auch drinn! ich weis nur nicht wie ich jetzt nach einzelnen rechten selectieren kann!

ich möchte in einer art if-anweisung regeln:

if (eingelogter_benutzer == insertrechte)
{
dann führe was aus!
}


mit anderen worten eine php script soll nur gestartet werden wenn der jeweilige benutzer insert rechte hat!
 
Wie hast du es denn ich der Datenbank gespeicher ob ein User beispielsweise Insert rechte hat oder nicht? Hast du ne Spalte die Insert heißt und wenn ne 0 drin steht hat er keine Rechte wenn ne 1 drin steht hat er das Recht?! Das müsste als erstes mal geklärt werden.

Gruß
 
Ich bin mir nicht sicher, aber ich glaube, du verwechselst da ein bisschen was.

Datenbankbenutzer ist nicht der Benutzer, welcher sich auf einer Website einloggt. Normalerweise hat eine Website einen Datenbankbenutzer. Der Benutzer, welcher sich dann auf der HP einloggt, steht lediglich in einer Tabelle (z.B. user) einer Datenbank (z.B. testdb). Der Datenbankbenutzer ist nur dazu da, eine Verbindung zur Datenbank aufzubauen und dementsprechend die registieren Benutzer bzw. die Rechte eines registrierten Benutzers zu selectieren...

Ich hoffe, ich beschreibs nicht zu schwer ;)

Greatz
 
die hp hat einen benutzer der aber nur selct recht hat.
den benötige ich damit die hp überhaupt daten aus der datenbank lesen kann.

wenn jetzt aber ein externer juser (ich nenne ihn mal paul) z.b einen neuen termin einpflegen will, braucht der ja insert rechte, welcher er auch hat.

jetzt meldet sich paul über ein loginfeld (Ähnlich ebay, oder wie hier bei tutorials!) und dem password ein.
jetzt soll meine hp prüfen ob der nutzer paul auch wirklich insert rechte hat. wenn er die hat soll ein weiterse php.script ausgeführt werden, welches aber nur ausgeführt wird wenn sich nutzer mit insert rechten anmelden!
 
Dazu musst du erst mal eine Tabelle in deiner Datenbank erstellen, in der Du die Login-Daten wie Benutzername, Passwort, usw ablegst. Desweiteren brauchst Du dann ein Feld, in dem Du die Rechte ablegst...
Ich schlage da folgendes vor:
1 für lesen
2 für lesen und schreiben
usw.

Wie Du das im Endeffekt machst bleibt dir überlassen - es gab immer mal ein Tutorial, in dem das behandelt wurde, weiß jetzt allerdings nicht, ob es noch existiert.
 
achso. ich dachte ich kann die rechte direkt aus der userdb welche standartart mäßig von mysql angelegt wird auslesen.

also versteh ich das richtig das ich extra eine tabelle anlegen muß worin ich separat die rechte Select = 1
insert = 2 usw. eintragen muß?
 
Richtig. Also ich weiß nicht, ob du darauf zugreifen kannst, aber ich würde es auf jeden Fall aus Gründen der Sicherheit unterlassen.
Du musst eine Usertabelle anlegen, in dem auch ein Feld für die Rechte enthalten ist.
Wie du die Rechte "codierst" ist letztlich dir überlassen.
 
Zurück