Die Formularüberprüfungsbibliothek scheint nur für POST zu funktionieren. Ich brauche Abfragezeichenfolgen und möchte CI verwenden, um die übergebenen Werte zu validieren. Gibt es eine Möglichkeit, dies zu tun?CodeIgniter Validierung: möglich, GET Abfrage Zeichenfolgen zu validieren?
Antwort
The current Codeigniter 3.0 development branch bietet eine Option zum Einfügen einer eigenen Variablen anstelle von $ _POST. Sie könnten also 3.0 verwenden.
Alternativ dazu besteht die einzige Möglichkeit in CI2.1 darin, $ _POST = $ _ GET auszuführen, bevor Sie die Validierung ausführen.
Könnten Sie bitte die "Option zum Einfügen Ihrer eigenen Variablen anstelle von $ _POST" angeben? Weil ich nach CI 3.0 migriere und alle meine form_validation mit Ausnahme eines gut funktionieren. Ich bekomme GET-Werte und möchte sie validieren ... Ich weiß nicht, wie es geht, danke! – Maxime
Ich habe gerade herausgefunden, was das Problem war ... !!! In CI 3.0 fügen sie einen kleinen Haken hinzu. Gehe zu system/librairies/Form_validation.php. Suchen Sie die Funktion "set_rules" und löschen Sie die Zeile: if ($ this-> CI-> input-> method()! == 'post' && leer ($ this-> validation_data)) { \t \t \t zurückgeben $ this ; \t \t} – Maxime
Ive versuchte _POST $ = $ GET aber die Validierungs-> run() gibt immer noch FALSE – Zorgarath
Sie könnten die Form_validation-Funktion, die in einer MY_Form_Validation ausgeführt wird, überschreiben und ändern.
Sehen Sie diese Seite für die CodeIgniter 3 Lösung: - http://www.codeigniter.com/userguide3/libraries/form_validation.html#validating-an-array-other-than-post
Für CodeIgniter 2 Sie tun können, $ _POST = $ _GET; vor $ this-> form_validation-> run() wie oben erwähnt.
Referenz How do I validate a form field in Codeigniter when using Get parameters?
Vor Validierungsregeln, stellen Sie die Validierungsdaten mit dem folgenden Code.
$this->form_validation->set_data($_GET);
Sie können CodeIgniter denken, dass es von POST war, obwohl es nicht war. '$ _POST = $ _GET', vielleicht? –
lol, die ganze Klasse ist fest programmiert, um '$ _POST' zu verwenden. Also, wenn Sie es nicht vollständig überschreiben, dann nein. – Esailija
mögliches Duplikat von [Wie validiere ich ein Formularfeld in Codeigniter, wenn ich Get-Parameter verwende?] (Http://stackoverflow.com/questions/10524992/how-do-i-validate-a-form-field-in-codeigniter) -wenn-using-get-Parameter) –