PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage HTML -> Formulareingabe zum Bild betrachten



Andree-HB
26.04.2017, 16:53
Hi,
ich möchte auf einem Webserver abgelegte Bilder nur nach Formulareingabe des Teilnamens ansehbar machen.



Beispiel:


für das abgelegte Bild "img_456457.jpg"

möchte ich eine Abfrage haben à la


“Bitte geben Sie hier den (Bilder)Code ein”
-> 456457




Ziel:
ich baue gerade eine Fotobox für eine Feier und möchte die Gäste selber Bilder machen lassen.
Nach jedem Bild wird automatisch ein Bon per Thermodrucker mit etwas Text und dem dazugehörigen "Bildercode" ausgedruckt, mit dem man sich dann später (nur) sein eigenes Bild ansehen/downloaden kann.





Bin für Hinweise/Suchbegriffe/Links dankbar :-)

wkrug
26.04.2017, 17:52
Ich würde eine Zufallszahl generieren lassen und diese dann als Teil des Dateinamens verwenden.
Auf dem Bon steht dann nur die Zufallszahl.
Bei 8 Stellen dürfte eine doppelte Vergabe der selben Zahl eigentlich nicht vorkommen.

Reines HTML kann solche Dateinamen eigentlich nicht zusammensetzen - Das wirst Du über ein Script erledigen müssen.

Wenn jemand so eine Zufallszahl errät kan er natürlich auch fremde Fotos angucken, oder wenn er über einen Robot alle möglichen Zahlen durchprobiert im Prinzip auch alle Fotos anschauen.

i_make_it
26.04.2017, 17:57
Webserver Seitig hast Du einen Webuser der die Rechte im Filesystem hat. Bsp. Apache : User und Gruppe "www".
Das heistalles was unter dem User ausgeführt wird kann prinzipiell überall im Webverzeichniss rein. Wird bei Abache über htaccess im Webserver intern geregelt wenn das eingeschränkt werden soll.
Du müsstest also per Datenbank den Zugriff regeln und auf Filesystem-/Webebene (htaccess) verbieten.
Der Ordner mit den Bildern ist dann selbst nicht per URL aufrufbar (somit auch kein Bild an dem Konstrukt vorbei per Trial and Error), sondern die Bilder werden rein über die in der DB hinterlegten Codes in eine dynamische URL eingefügt und dürfen auch nur so adressierbar sein.

Jetzt kommt es drauf an welche Sprachen du beherrschst.
Ich arbeite halt mit PHP, deshalb ein entsprechendes Beispiel:

https://www.df.eu/forum/threads/49605-Zugriff-auf-Bilder-nur-%C3%BCber-PHP

Andree-HB
26.04.2017, 18:17
...der Plan bezüglich Dateinnamen/Code ist, dass ich die Kamera und die Steuerung (per RTC) zeitlich synchronisiere und dadurch einen Abgleich machen kann. Die Bilder werden im Nachhinein rein über den Timestamp der Bildaufnahme neu benannt (analog dem generierten "Code" vom Arduino) - gibt dafür etliche "renamer" Software, die die "Herkunft des Namen" nicht sofort erkennbar werden lassen.

also z.B.
gespeicherter Bildername: IMG_1401.JPG mit Timestamp 26.04.2017 18:36:22

wird zu:
26a2E36Z18(.JPG)


Ich habe nur die Bilder in der Kamera/auf deren Speicherkarte und kann da nicht auf Dateiebene drauf zugreifen....halt nur simpel von außen (Arduino) auslösen.

Die Bilderadressierung (URL) kann ruhig möglicherweise per Trial & Error ausprobiert werden, da nur die allerwenigsten Partygäste den Vorgang/die Technik auch nur ansatzweise begreifen. :-)
Geht eigentlich nur drum, dass auch "Tante Erna" am nächsten Tag zuhause ihr eigenes Bild angucken kann und nicht sofort alle Bilder sieht....

Daher muss man auch nicht mit `ner Datenbank oder Verschlüsselung mit Kanonen auf Spatzen schiessen. :-)

Der "Bon" wird dann in etwa so in der Richtung aussehen, vielleicht sogar noch per QR-Code als Link:
http://www.pixelklecks.de/pictures/print.jpg (war nur ein erster Test)

i_make_it
26.04.2017, 18:32
Kann Dir aber halt passieren, das bei einem Tippfehler oder Einagbe der entsprechenden URL der ganze Webroot im Browser angezeigt wird und man dann wahlfrei auf jedes Bild navigieren kann.
Das hat dann nichts mit Technikverständniss sondern mit Murphy zu tun.

Ene Scriptsparche für das CGI Script wirst Du auf jeden Fall brauchen.
Das Formular auf der Webseite liefert ja nur per POST oder GET die Eingabe an den Webserver.
Der selbst kann von hause aus nichts damit anfangen.
Da die meisten Hoster Apache, php, MySQL anbieten und private Webserver auch eher ein WAMP oder LAMP als ein IIS sind, wäre das halt das schnellste.
Eine Tabelle mit Code und Bildnamen.
Ein Ordner wo alle Bilder liegen und ein Script das beim Aufnehmen den Code erzeugt und mit dem Bildnahmen in die DB schreibt, sowie eine Script um die Formulardaten zu verarbeiten und die Anzeigeseite aufzubauen.
Ein minimales Sessionhandling, damit bei zwei gleichzeitigen Seitenbesuchern nicht der eine das Bild vom anderen angezeigt bekommt und fertig.