2009-07-02 9 views
0

Ich habe 3 Datenfelder, die zum Ausfüllen einiger Felder auf dem Bildschirm verwendet werden. Wenn ein Benutzer das Formular veröffentlicht (unabhängig von den in den Arrays enthaltenen Daten), möchte ich die Array-Daten erneut auf dem Bildschirm anzeigen, ohne sie jedoch beim erneuten Laden der Seite aus der Datenbank abzurufen. Was ist der beste Weg, um diese Werte vorübergehend zu speichern?Was ist die beste Möglichkeit, Felder auf dem Bildschirm anzuzeigen, nachdem ein Benutzer ein Formular veröffentlicht hat, ohne zurück zur Datenbank zu gehen?

Ich dachte daran, sie in der Sitzung zu speichern, ist das schlechte Praxis? Gibt es einen besseren Weg, vielleicht als versteckte Formwerte?

Antwort

1

Eine andere Option könnte sein, das Array und speichern Sie es in eine temporäre Datei.

Über die Frage Sitzung und versteckte Formularfelder: Der Nachteil der Formularfelder ist, dass Hacker es im HTML-Quellcode sehen und missbrauchen könnten. Sie müssten also einige zusätzliche Prüfungen durchführen, um festzustellen, ob die Formularfelder in irgendeiner Weise gültig sind oder nicht.

Das Problem mit Sitzung und serialisieren ist, dass die Informationen auf dem Server liegen würden, wenn der Benutzer sich von der Website entfernt, bevor er den gesamten Prozess beendet hat.

Und das letzte: Sie schreiben nicht, wie groß diese Arrays sind. Wenn jedes dieser drei Arrays mehrere tausend Einträge enthält, könnte die Serialisierung eine bessere Option als die Sitzungs- und Formularfelder sein.

Wahrscheinlich Sitzungen ist, was Sie brauchen. Aber auch die anderen Dinge sollten berücksichtigt werden.

0

Klingt wie eine perfekte Nutzung der Sitzung. Ich würde nur vorsichtig sein, um sicherzustellen, dass Sie eine korrekte Fehlerbehandlung in der Datenbankfunktion haben, da Sie einen Benutzer auf keinen Fall in die Irre führen wollen, dass die Daten gespeichert wurden, als es tatsächlich einen Fehler gab.

1

Generieren Sie eine Reihe von versteckten Eingaben im Formular. Dann können Sie sie einfach von der Post lesen.