Verknüpfung Bilder und Datenbank
Marvin Ludwig
- php
0 Kerstin0 Marvin Ludwig0 Kerstin0 Marvin Ludwig0 Andreas
Hallo,
Ich habe ein PHP-Skript erstellt, dass nach Eingabe von Benutzername und Passwort aus einer Datenbank Informationen für den jeweiligen Benutzer ausliest und ausgibt.
Nun soll zu den Informationen aus der Datenbank zusätzlich ein Bild angezeigt werden. Jeder Benutzer darf nur sein Bild sehen.
Wie kann ich das realisieren?
Mir ist bisher keine "einfachere" Lösung eingefallen, als die Bilder direkt in der Datenbank zu speichern.
Hat jemand noch ne andere Idee?
Gruß
Marvin
Hallo,
Ich habe ein PHP-Skript erstellt, dass nach Eingabe von Benutzername und Passwort aus einer Datenbank Informationen für den jeweiligen Benutzer ausliest und ausgibt.
Nun soll zu den Informationen aus der Datenbank zusätzlich ein Bild angezeigt werden. Jeder Benutzer darf nur sein Bild sehen.
Wie kann ich das realisieren?
Mir ist bisher keine "einfachere" Lösung eingefallen, als die Bilder direkt in der Datenbank zu speichern.
Hat jemand noch ne andere Idee?
Gruß
Marvin
Hallo Marvin,
ich würde Dir empfehlen, lieber einen Link zu dem jeweiligen Bild in der Datenbank zu speichern.
Der Link hier http://www.koehntopp.de/php/databases.html#db-blob hilft Dir vielleicht weiter.
viele Grüsse
Kerstin
Hallo Kerstin,
wenn ich mit Links arbeite habe ich das Problem, dass die Bilder dann "offen rumliegen". Ich will ja, dass nur jeweils ein bestimmter Benutzer Zugriff zu einem bestimmten Bild hat.
Gruß
Marvin
Hallo Marvin,
wenn ich mit Links arbeite habe ich das Problem, dass die Bilder dann "offen rumliegen". Ich will ja, dass nur jeweils ein bestimmter Benutzer Zugriff zu einem bestimmten Bild hat.
Sorry, hab mich falsch ausgedrückt, ich meinte natürlich den pfad zu dem bild. was meinst Du mit offen rumliegen?
Zu jedem Benutzer speicherst Du in der Datenbank den Pfad zu seinem Bild und nur dieses Bild wird dann auch angezeigt und kein anderes.
viele Grüsse
Kerstin
was meinst Du mit offen rumliegen
Ich meine damit, wenn ein Benutzer weiß wo seine Bilder liegen, dann weiß er eben auch wo die anderen Bilder liegen. Ich kann nicht für jeden Benutzer ein eigenes Verzeichnis anlegen.
Klar, eine Benutzer kann nur auf das Bild eines anderen Benutzers zugreifen, wenn er den Dateinamen kennt. D.h. er müsste ihn erraten. Die Dateinamen müssen aber in meinem Fall zwangsläufig eine logische Struktur haben, wodurch das Erraten nicht schwer wäre.
Ich möchte bzw. muss halt maximale Sicherheit erreichen.
Halt, Stop, Zurück. Ich habe mich wohl etwas falsch ausgedrückt. hab grad nochmal drüber nachgedacht in welche Richtung die Lösung für mein Problem gehen müsste.
Die Bilder auf dem Server dürfen nur in auf dem Server liegende html-Seiten bzw. php-Skripts eingebunden werden. Der der diese Seiten angezeigt bekommt darf das entspr. Bild dann natürlich auch downloaden. Allerdings soll kein direkter Zugriff auf ein Bild möglich sein, indem ich den Pfad in den Browser eingebe.
=> Geht wohl stark in Richtung "Bilder schützen" und dafür gibt's ja keine Lösung.
Naja
Hallo,
Klar, eine Benutzer kann nur auf das Bild eines anderen Benutzers zugreifen, wenn er den Dateinamen kennt. D.h. er müsste ihn erraten. Die Dateinamen müssen aber in meinem Fall zwangsläufig eine logische Struktur haben, wodurch das Erraten nicht schwer wäre.
Auf http://www.koehntopp.de/php/databases.html#db-blob steht doch dass Du die Bilder - sofern Du diese als BLOB hinterlegst - per Script auslesen musst.
Zum Beispiel:
<img src="sendimage.php3?img=geniales_logo.gif">
Versuche doch in "sendimage.php3" auch abzufragen, ob der User berechtigt ist das Bild img zu sehen. Wenn ja, dann bekommt er das Bild zu sehen.
Hoffe das hilft Dir weiter
Andreas
Hallo Andreas,
Auf http://www.koehntopp.de/php/databases.html#db-blob steht doch dass Du die Bilder - sofern Du diese als BLOB hinterlegst - per Script auslesen musst.
Dort steht leider auch, dass es aus Performancegründen nicht wirklich sinnvoll ist Bilder in einer Datenbank zu speichern. Ich komm wohl aber nicht darum herum. Hab halt gehofft, dass es noch eine andere Lösung gibt.
Gruß
Marvin
Hallo Marvin,
Dort steht leider auch, dass es aus Performancegründen nicht wirklich sinnvoll ist Bilder in einer Datenbank zu speichern. Ich komm wohl aber nicht darum herum. Hab halt gehofft, dass es noch eine andere Lösung gibt.
Das ist wohl richtig dass es performanter ist einen String mit der entsprechenden Pfadangabe und dem Dateinamen auszulesen anstatt ein weiteres Script aufzurufen, welches ein BLOB ausliest. Bei vielen Anfragen könnte das ein Problem werden. Bist Du Dir sicher das es bei Deiner Anwendung deshalb zum Performanceproblem kommen kann?
Zudem haben BLOB´s den Vorteil das Du recht einfach mit doppelten Dateinamen umgehen kannst. Wenn Du die Bilder im Dateisystem speicherst musst Du sicherstellen, dass keinen doppelten Einträge vorhanden sind (bzw. diese überschrieben werden) und eine "echte" Transaktionssicherheit gibt es nicht.
Weitere Lösung:
Du könntest noch jede (Bild-)Datei seperat mit .htaccess schützen und die entsprechenden Einträge für die User generieren.
Ich halte die BLOB Lösung für elegant.
Grüße
Andreas
Ich werde dann wohl die BLOB-Lösung machen.
Das mit .htaccess hab ich mir auch schon gedacht. Das Problem ist aber, dass der User dann aber zweimal die Zugangsdaten eingeben muss. Einmal für die Datenbank und ein zweites mal für die Bild-Datei.
Gruß
Marvin