Sie müssen PRG - Post/Redirect/Get-Muster verwenden. Redirect und load view sind nicht identisch, wenn Sie das Formular im Inhalt der Seite haben.
Scenario:
Es gibt eine Ansicht, view_1 mit Formular darin, Geld von einem Konto abzubuchen. Nach dem Absenden des Formulars in der view_1 möchten Sie mit einer Erfolgsmeldung zu view_2 springen und Sie haben 2 Möglichkeiten, um das gleiche zu erreichen. 1. lade view_2 mit Erfolgsmeldung oder 2. redirect to view_2 mit flash-Daten mit Erfolgsmeldung.
Option 1: Last view_2 mit Erfolgsmeldung Wenn Sie das Formular abschicken und aktualisieren, wird es dazu führen, Wiedervorlage und mehrere Abbuchung vom Konto verursachen, was nicht der Fall sein sollte. Sie können auch die Alarmmeldung "Bestätigung der Formularwiederholung" sehen.
Option 2: Das ist die richtige Antwort PRG
PRG - Pfosten-/Redirect/Get PRG ist ein Design-Web-Entwicklung Muster, das einige doppelte Formularen verhindert, was bedeutet, Formular senden (VIEW_1) - > Redirect -> Get (view_2)
Under the hood
Redirect-Statuscode - HTTP 1.0 mit HTTP 302 oder HTTP 1.1 mit HTTP 303
Eine HTTP-Antwort mit Redirect-Statuscode wird zusätzlich eine URL im Location-Header-Feld bereitstellen. Der Benutzeragent (z. B. ein Webbrowser) wird durch eine Antwort mit diesem Code aufgefordert, eine zweite, ansonsten identische Anfrage an die neue URL zu stellen, die in dem Standortfeld spezifiziert ist.
Der Umleitungsstatuscode soll sicherstellen, dass der Browser des Webbenutzers in diesem Fall die Serverantwort sicher aktualisieren kann, ohne dass die anfängliche HTTP POST-Anforderung erneut übermittelt werden muss.
Source
Double Submit Problem
Post/Redirect/Get Solution
Natürlich 'flashdata' nicht auf der aktuellen' $ this-> last-> Ansicht() funktioniert, ', da es einen Sitzungswert festlegt, der nur auf der nächsten Seite angezeigt wird, die vom Browser geladen wird (nicht die aktuelle Seite). Wenn Sie Daten an 'view()' übergeben wollen, übergeben Sie sie einfach an den 'view ($ page, $ data)' Aufruf selbst als zweiten Parameter. –
Ich bin mir nicht sicher, was Sie versuchen zu tun. Sie müssen wahrscheinlich etwas mehr Zeit damit verbringen, die CI-Dokumente zu lesen. Es klingt, als würden Sie die Dinge ein bisschen vermischen ... – Ben
http://StackOverflow.com/a/32866456/412591 –