Ich habe ein Problem mit post-Daten Variablennamen zum Beispiel ich diese Art von Eingabe bekommen könnte:Codeigniter POST-Daten Namen
<input type="number" name="amount[BKP1P+NC10A]" />
die es in der Theorie nichts falsch mit dem Namen Feldelement ist und wenn ich bin nicht im codeigniter erhalte ich den Array-Namen und greife wie gewöhnlich darauf zu, aber merkwürdig ist, wenn ich $this->input->post()
benutze oder wenn ich direkt auf die Daten von $_POST
zugreife, wird der Name des Array-Elements entfernt und stattdessen bekomme ich ein enumeratives Array.
Zum Beispiel in der normalen Post (ohne codeigniter) i erhalten:
array(1) {
["amount"]=>
array(1) {
["BKP1P+NC10A"]=>
string(2) "12"
}
}
Während in codeigniter i diese:
array(1) {
["amount"]=>
array(1) {
[0]=>
string(2) "12"
}
}
Kann mir jemand sagen, was los ist und wie ich das bekommen kann tatsächlicher Name anstelle eines enumerativen Arrays?
Dank & Grüße
Warum in süß heck brauchen Sie die Eingabe-Array-Name zu sein "BKP1P + NC10A". Ich habe keine Beweise, aber ich habe den starken Verdacht, dass CodeIgniter '-> post()' einige Sonderzeichen entfernt, vielleicht für einen potentiellen Sicherheits-Exploit oder vielleicht nur für Entwickler. – Goose
Diese Art von Code ist eine Teilenummer und ja, es kann als ein Element verwendet werden. Im Codeigniter nicht nur -> post() sondern auch $ _POST verhält sich gleich und bekommt ein enumeratives Array – Combinu
Es scheint, dass es nicht als ein Element in CodeIgniter verwendet werden kann, was wahrscheinlich ist, warum Sie dieses Verhalten bekommen. Es ist wahrscheinlich nicht dokumentiert und Sie müssten in den Systemcode von CodeIgniter schauen, um zu bestätigen (und zu beheben), aber wenn dieser Array-Element-Name Ihnen unerwartetes Verhalten gibt, liegt das wahrscheinlich an dem + -Zeichen. Es ist unkonventionell, einen Datenschlüssel zum Speichern von Daten zu verwenden. Anstatt zu versuchen, ein Feld zu verwenden, um zwei Dinge zu tun, sollten Sie zwei Felder haben, dasjenige, das Sie jetzt mit einem allgemeinen Schlüsselnamen und einem versteckten Feld mit der Teilenummer haben. – Goose