Neuigkeiten:

still alive...

Hauptmenü

FILERIGHTS

Begonnen von horus-)dg(, 19. Juli 2006, 11:35:08

Vorheriges Thema - Nächstes Thema

horus-)dg(

Hallo Thomas
Ich habe mir Zu Deinem Loginlevel mal ein paar gedanken gemacht.
Wäre es nicht praktisch wenn man von vorneherein sagen könnte wer auf eine Datei Zugriff hat.
Macht natürlich nur Sinn wenn man nicht hunterttausend Leute hat, die man darauf berechtigen will.
Das Script basiert auf Deinem Loginlevel.php, hoffe Du bist nicht böse, dass ich es abgewandelt habe.
Habe es nur soweit abgeändert dass es überprüft ob jemand der in einem File eingetragen ist Zugang erhalten soll.
Im zu schützenden PHP-File wird an den Anfang folgender Code gesetzt:
 


Die Pfade müssen evtl. angepasst werden, ich habe bei mir absolute Pfade verwendet nicht so wie es im Script steht. Weis also nicht obs damit auch geht.Die Datei filerights.php ist nur eine abgewandelte Version von loginlevel.phpund sieht so aus.Code für die Datei filerights.php -> Muss im User-Verzeichnis liegen.
 \'\'\";
$ergebnis  = mysql_query($sqlbefehl, $serverid);
$user = mysql_fetch_array ($ergebnis);
if (mysql_num_rows($ergebnis) != 1 ) {
       require ($_SERVER[\'DOCUMENT_ROOT\'].\"/user/kopf.php\");
          UserMsgBox(\"Nur registrierte User mit Zugangsrecht haben auf diese Datei Zugriff!\");
       echo \"Login
 
              Login
              User:
              Passwort:
              Login speichern:
 
              $copyright\";
       require ($_SERVER[\'DOCUMENT_ROOT\'].\"/user/fuss.php\");
       exit;
     }
// ######## Ab hier wurde der Login wohl durchgeführt.
// Es muss nun geprüft werden ob jemand angemeldet ist.
// Geprüft soll am bessten nach einem Array werden, dass heißt wer in diesem Array vorkommt hat Zugriff.
// Die User die Zugriff haben befinden sich im Array $ZugangHat
if (mysql_num_rows($ergebnis) == 1) {
 $ZugangErlaubt=0; // Erst mal verbieten
 if($xxx = array_search($user[username],$ZugangHat)) {
   $ZugangErlaubt=1;
   $expire=$zeit+800;
   $sqlbefehl= \"update $tab_user set expire=\'$expire\' where id = \'$user[id]\'\";
   $ergebnis  = mysql_query($sqlbefehl, $serverid);
 }   // Der Name kommt im Array vor
 if($ZugangErlaubt == 0) { //Kommt der User nicht vor, dann Meldung ausgeben und Vorgang abbrechen.
require ($_SERVER[\'DOCUMENT_ROOT\'].\"/user/kopf.php\");
UserMsgBox(\"Hallo $user[username] Du hast leider keine Zugriffsrechte auf diese Datei.\");
die (\"\"); // Stirb


 
 
Verbesserungsvorschläge für Filerights.php sind natürlich gerne gesehen, ausser Du schmeißt das Ding gleich wieder raus.
Bei mir läuft das Ding prima. /uploads/emoticons/icon_e_biggrin.gif.40dcc5d69f84e2cf29e77d8e1e9a84e2.gif\" alt=\":D\" />

Powie


horus-)dg(

Wie gesagt, Du kannst es natürlich rausschmeissen, weil es ja eigentlich gegen Deine Lizenzbestimmungen verstößt.
Ändern Deiner Scripte.
Mir war es eben nur wichtig gezieltere Maßnahmen zu ergreifen um Userrechte einzubinden.
Loginlevel ist auch nicht schlecht, lässt aber nicht gezielt Leute zu.
Vielleicht prüfst Du das Teil ja mal auf Herz und Nieren und baust es von haus aus in Deine Scripte mit ein,
dann ist es kein Verstoß mehr hehe  /uploads/emoticons/icon_e_smile.gif.f7ec63a2b1c3d90a9415e40455642502.gif\" alt=\":-)\" />

horus-)dg(

Hallo Leutz.
Tja wie sich herausstellt funzt das Teil doch nicht so ganz.
Das heißt das mit den Rechten geht einwandfrei,
aber wenn man sich nicht am Forum oder sonst wo in den Scripten von Powie einloggt funktioniert es nicht 100%
Der Login oder das Cookie wird wohl nicht richtig hinterlegt. (oder noch nicht hinterlegt)
Wenn man sich einloggt,  dann bekommt man die Seite kurz angezeigt,
aber nach einem Refresh ist alles wieder weg und es kommt wieder die Aufforderung zum Login.
Kann mir da bei Gelegenheit mal jemand einen Tipp geben woran das liegen kann,
oder noch besser, wie ich das beheben kann.
Wär Supertoll - Danke
 - Editiert von Horus-)DG( am 03.09.2006, 20:16 -

horus-)dg(

Wollte hier nur nochmal anmerken, dass das Skript mit den neuen pScripten nun doch einwandfrei funktioniert
Die Abfrage muß nur komplett am Anfang einer Seite stehen, dann gehts auch.
Es darf vorher kein anderer Include vorkommen.

all your base are belong to us