Hello,
Nein, der User lädt ein Bild hoch und einige Textfelder. Das Bild wird dann unter einem Zufallsnamen ausreichender Länge auf der Platte gespeichert, der Text zusammen mit dem Bildlink wieder zur Vorschau ausgegeben. Wenn der jetzt einen Fehler hat (fehlende Felder, zu kurz, Spam-emails statt einer einzigen, usw), gibt es auch eine entsprechende Fehlermeldung.
Dann wäre es doch zumindest eine Überlegung wert, erst die Text der einzelnen Formularfelder dem User so lange vorzukauen, bis das Programm grünes Licht gibt. Erst danach wird dem User ein Hochladen von Bildern ermöglicht. Wie Du den Text derweil verstaust; ob mit JavaScript im window.name, dann erst ersatzweise in einem Cookie, dann erst ersatzweise mit einer serverseitigen Logik, ist doch auch nicht viel schlimmer, als eine DB dafür zu nehmen.
Im schlimmsten Fall wird es also immer auf eine serverseitige Technik hinauslaufen, wenn andere angebotene Möglichkeiten nicht vorhanden/nuzbar sind. Datein haben in einem Dateisystem doch auch Eigenschaften, die man nutzen kann. Wie Siechfred bereits andeutete, kann man mit dem Aufruf des Scripts bei jedem mal auch alle vorgehaltenen Datensätze auf ihre Erstellzeit mit filectime() prüfen, werden beispielsweise 2 h überschritten, wird dieser glöscht. Aus die Maus. Das ist ein System, was ich bspw. einsetze und was sich ohne Mucken bewährt hat.
Der User kann seine Fehler beseitigen. Den Namen des Bildes auf der Platte des Servers muss er aber unmanipuliert wieder mitsenden. Ich kann zwar prüfen, ob er einen gültigen Bildnamen benutzt hat, aber ich kann nicht prüfen, ob er sich einen Bildnamen von einem siener Vorgänger geklaut hat. Dass er einen errät, ist sehr unwahrscheinlich, da der Name aus $_SERVER['UNIQUE_ID'] (bzw. später einem ähnlichen Schlüssel) gebildet wird.
Lege Dir doch pro Datensatz ein (tmp)-Verzeichnis oder auch eine Datei mit einem eindeutigen Namen zu. Selbst wenn Du Bilder gleich beim ersten Versuch hochladen läßt, wird das verweiste Verzeichnis/die Datei alsbald gelöscht...
Er kann sich aber ansehen, was andere schon hochgeladen haben, und daher auch den Bildnamen der vorhandenen Einträge ermitteln.
Soll er doch. Ich sehe Dein Problem immer noch nicht; oder willst Du programmverifizierte Userdaten aus dem "Zwischenspeicher" der Formularvalidirung sofort online stellen? Ich glaube wohl nicht. Also wird doch auch ein Verschieben der Dat(ei)en voran gehen.
Ich wollte erst Siechfreds Weg gehen, aber da das File-Feld nicht vorbelegbar ist, müsste der User bei jeder Korrektur am Text auch das Bild neu heraussuchen.
Was für ein Datenmüll. Speichere zwischen und organisiere den Upload erst zum Schluß.
Man wird es wohl nur zweistufig machen können. Erst den Text hochladen, den abgesegneten Text mit dem Platzhalter für das Bild dann anzeigen und dann das Bild Hinterherschicken. Dafür benötigt man dann aber wieder eine Userauthentifikation.
Ach jetzt verstehe ich, worum es so sein soll. Aber dem steht immer noch nicht im Wege, die Bilder erst später nachzuladen. Das habe ich auch mal gemacht. Es ging dabei um eine "Onlineredaktion" von Beiträgen. Erst wurde der Test hochgeladen, dann wurde der Text in Sätze unterteilt. Zu jedem Satz wurde jeweils rechts und links ein Formularfeld zum hochladen später in den Text mit float einzubettender Bilder angeboten. Das wurde damals von den Usern genauso angenommen und hat reibungslos funktioniert.
Zur Authentifizierung hast Du Möglichkeiten genug mit PHP. Allerdings verstehe ich nicht, warum ausgerechnet der Server mit dem mod_unique_id belasten willst. Du hast doch schon PHP. Was willst Du jetzt den Server unnötig vollpacken? Ich dachte, der soll nicht alles, was das Leben erleichtern und unnötig ist, einbinden.
Gruß aus Berlin!
eddi