Noxy Geschrieben 22. Januar 2004 Teilen Geschrieben 22. Januar 2004 Hi Ich will eine Seite erstellen, die eine Passwortabfrage per PHP/MySQL hat, mehrere Benutzer mit verschiedenen Rechten auf verschiedene Seiten etc.das ist nicht das Problem, jetzt will ich aber Bildergalerien auf der Seite haben, auf die nur bestimmte Benutzer Zugriff haben. Wie mache ich das am besten? Wenn ich die Bilder in bestimmte Verzeichnisse packe, kann ja theoretisch jeder darauf zugreifen. Any Ideas? Noxy Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
FinalFantasy Geschrieben 22. Januar 2004 Teilen Geschrieben 22. Januar 2004 Kommt drauf an, was du für Zugriffsrechte auf deinen Webspace hast. Du brauchst den Verzeichnissen ja beispielweise nur die Zugriffsrechte für den Apache-User entziehen (Sofern das System Apache benutzt), dann kann Apache dass Verzeichniss nicht in einem Browser von irgendeinem Surfer öffnen. Aber mir fällt grad ein, dann kommst du wahrscheinlich ja selber nichtmehr an die Bilder.... hm, das ist dumm Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Noxy Geschrieben 22. Januar 2004 Autor Teilen Geschrieben 22. Januar 2004 Also es geht vor allem darum, dass bestimmte Benutzer die Galerie betrachten dürfen, andere nicht. Zur Verfügung steht dabei: Ein Linux Apache Webserver, PHP und MySQL, voller Zugriff auf alles. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Florian_K Geschrieben 22. Januar 2004 Teilen Geschrieben 22. Januar 2004 Tach auch! Bei mir habe ich ein Admin-Interface, das passwortgeschützt ist. Nennen wir die Seite einfach admin.php. Folgender Code steht dort am Anfang:<? include ("include/login.inc.php"); $PHP_SELF = $_SERVER['PHP_SELF']; ?> [/PHP] Die login.inc.php enthält dann folgendes:[php]<? require ("include/adminincluder.inc.php"); if (!isset($_SERVER[PHP_AUTH_USER])) { authenticate(); } else { $query = mysql_query("SELECT usr_id FROM user WHERE usr_login = '$_SERVER[PHP_AUTH_USER]' ". "AND usr_passwd = MD5('$_SERVER[PHP_AUTH_PW]')"); if (mysql_num_rows($query)) { $dummy = mysql_fetch_array($query); $userid = $dummy[0]; } else { authenticate(); } } ?> In adminincluder.inc.php wir lediglich die DB-Connection verwaltet. Das Konzept ist folgendes: Die Tabelle user hält die Daten der Nutzer, u.a. Login und das MD5-verschlüsselte Passwort. Die Function authenticate weist den Apache an, die Autentifizierung einzutreiben. Source:function authenticate() { Header("WWW-authenticate: basic realm=\"SharksReef Authorisation\""); Header("HTTP/1.0 401 Unauthorized"); echo "Sie sind nicht für diesen Bereich berechtigt.\n"; exit; }[/php]Die Informationen werde übermittelt in den Server-Variablen PHP_AUTH_USER und PHP_AUTH_PW. Die vergleichst du mit der Datenbank und kannst dort auch eine Rechtekontrolle machen. Die Tabelle user kann noch ein Feld usr_privileges tragen, dort kannst du die jeweiligen Privilegien einträgen. Ich hoffe, es kam einigermaßen rüber. Ansonsten hier: http://www.php.net/manual/de/features.http-auth.php Eine Out-Of-The-Box Gallery kannst du dir übrigens hier runterladen: http://gallery.menalto.com/modules.php?op=modload&name=News&file=index Die ist sehr schnell aufgesetzt, lässt sich gut konfigurieren und administrieren, enthält auch Benutzerverwaltung etc. Fertig kann es dann so aussehen: http://gallery.sharksreef.de Gruß, Florian Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Wolle Geschrieben 22. Januar 2004 Teilen Geschrieben 22. Januar 2004 Verschoben -> Webserverprogrammierung Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
*I C Q* Geschrieben 22. Januar 2004 Teilen Geschrieben 22. Januar 2004 Original geschrieben von Noxy Wenn ich die Bilder in bestimmte Verzeichnisse packe, kann ja theoretisch jeder darauf zugreifen. Ich würde die Bilder als Blob-Objekt in die MySQL-Datenbank packen. Somit hast Du die volle Kontrolle, welche Bilder angezeigt werden können und welche nicht. Informationen dazu (und auch die Nachteile dieser Lösung) findest Du unter http://www.dclp-faq.de/q/q-mysql-blob.html! Eine andere Lösung wäre es, Bilder in einem für die Öffentlichkeit gesperrten (entweder oberhalb vom DOCUMENT_ROOT oder ein per Apache-Authentifizierung gesperrtes) Verzeichnis abzulegen, und die Bilder per Skript zu laden und anzuzeigen. Dazu schaust Dir am Besten im PHP-Manual mal die Grafikfunktionen, speziell die imagecreatefrom*, an. ICQ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Noxy Geschrieben 22. Januar 2004 Autor Teilen Geschrieben 22. Januar 2004 Danke für die Vorschläge Also von der Blob Variante bin ich irgendwie nicht so überzeugt. Die Gallery PHP Seite schau ich mir mal an Hab ich die PHP Hilfe Seite richtig verstanden, dass ich z.B. mit der imagecreatefromjpeg Funktion Bilder darstellen kann, ohne, dass der Benutzer die URL braucht? Dafür benötige ich aber zusätzliche Module zu PHP oder? Hab ich noch was vergessen? Noch andere Vorschläge? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 22. Januar 2004 Teilen Geschrieben 22. Januar 2004 Hi, du kannst auch einfach die Datei binär an den Browser schicken, du musst vorher nur den Content Typ setzen. <?php header("Content-Type: ".$content); readfile($path.$file); ?> [/php] Gruß Jaraz Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
*I C Q* Geschrieben 22. Januar 2004 Teilen Geschrieben 22. Januar 2004 Original geschrieben von Noxy Hab ich die PHP Hilfe Seite richtig verstanden, dass ich z.B. mit der imagecreatefromjpeg Funktion Bilder darstellen kann, ohne, dass der Benutzer die URL braucht? Dafür benötige ich aber zusätzliche Module zu PHP oder? Yep, Du brauchst die GD-Bibliothek. In vielen Fällen ist die aber schon installiert. Das kannst Du recht einfach prüfen, indem Du phpinfo() aufrufst. Dort sollte bei "Configure Command" etwas stehen wie "--with-gd" und im "gd"-Bereich bekommst Du dann nähere Informationen zu der installierten Version. Original geschrieben von Jaraz du kannst auch einfach die Datei binär an den Browser schicken, du musst vorher nur den Content Typ setzen. Richtig, daran hatte ich gar nicht gedacht. *anshirnlang* Trotzdem bevorzuge ich die andere Methode, da ich bei einem nicht existierenden Bild ein leeres Bild zurückgebe mit einem Warnhinweis (wie bei der Doku zu imagecreatefromjpeg()). ICQ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 22. Januar 2004 Teilen Geschrieben 22. Januar 2004 Original geschrieben von *I C Q* Richtig, daran hatte ich gar nicht gedacht. *anshirnlang* Trotzdem bevorzuge ich die andere Methode, da ich bei einem nicht existierenden Bild ein leeres Bild zurückgebe mit einem Warnhinweis (wie bei der Doku zu imagecreatefromjpeg()). Nur als Alternative! <?php header("Content-Type: ".$content); if (file_exists($path.$file)) { readfile($path.$file); }else{ readfile($default_file); } ?> [/php] Die gdlib functionen, können einen Server schon ganz schön belasten, natürlich nur wenn sich nicht gerade 2 Leute am Tag auf den Server verirren. Gruß Jaraz Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Nobse Geschrieben 23. Januar 2004 Teilen Geschrieben 23. Januar 2004 Hmm ich habe dies per Sessions realisiert, in der Datenbank stehen die Usernamen sowie Passwort etc. und das "level" Das lese ich nach dem Login von dem User aus und schreibe es in die Session, je nach $_SESSION['level'] wird nun auf jeder Seite geprüft was er darf und was nicht. :-) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
*I C Q* Geschrieben 27. Januar 2004 Teilen Geschrieben 27. Januar 2004 Original geschrieben von Jaraz Nur als Alternative! Die gdlib functionen, können einen Server schon ganz schön belasten, natürlich nur wenn sich nicht gerade 2 Leute am Tag auf den Server verirren. Manchmal kommt man auf die einfachsten Lösungen nicht... ;-) Aber bei den Projekten, bei denen ich's z.Z. einsetze, ist's eh wurscht, da die Frequenz nicht wirklich hoch ist, bzw. ich die GD-Funktionen wirklich benötige (u.a. für Resize, etc.). Trotzdem Danke! ICQ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.