(PHP-Script) Wieso funktioniert das einmal und einmal nicht?
Hab mal eine Frage zu einer Formular-PHP-aus-einer-json-Datei-auslese-und-wieder-eintrag Funktion, die ich versuche genauer zu verstehen. Genauer gesagt komm ich da an einer Stelle nicht weiter (weil sich Teile der Funktion scheinbar komplett willkürlich verhält!)
Also wenn ich in PHP eine Funktion in der Struktur hier habe:
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$params = [
"p1" => isset($_POST['p1']) ? $_POST['p1'] : null,
"p2" => isset($_POST['p2']) ? $_POST['p2'] : null,
"p3" => isset($_POST['p3']) ? $_POST['p3'] : null,
"p4" => isset($_POST['p4']) ? $_POST['p4'] : null,
// A_settings
"P5" => [
"SP1" => $_POST['P1'],
"SP2" => $_POST['P2'],
],
];
und der Inhalt der auszulesenden json Datei so aussieht:
{
"p1": "antwort1",
"p2": "antwort2",
"p3": "antwort3",
"p4": "antwort4",
"self": {
"P5": {
"SP1": antwort5,
"SP2": antwort6
}
}
}
klappt scheinbar alles hervorragend. Die Parameter werden gefunden und nach dem Absenden des Formulars korrekt überschrieben.
Wenn ich allerdings wie im folgenden Beispiel etwas mehr Parameter hinzufüge wie in dieser Struktur hier und für die Benennung etwas längere Namenschemen verwende:
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$params = [
/// calculation nr1:
"Self.P1" => isset($_POST['Self.P1']) ? $_POST['Self.P1'] : null,
"Self.P2" => isset($_POST['Self.P2']) ? $_POST['Self.P2'] : null,
"Self.P3" => isset($_POST['Self.P3']) ? $_POST['Self.P3'] : null,
"Self.P4" => isset($_POST['Self.P4']) ? $_POST['Self.P4'] : null,
.....
"Self.P18" => isset($_POST['Self.P18']) ? $_POST['Self.P18'] : null,
"Self.P19" => isset($_POST['Self.P19']) ? $_POST['Self.P19'] : null,
"Self.P20" => isset($_POST['Self.P20']) ? $_POST['Self.P20'] : null,
"Self.P21" => isset($_POST['Self.P21']) ? $_POST['Self.P21'] : null,
///
// A_settings
"self.A_settings" => [
"w1" => $_POST['w1'],
"w2" => $_POST['w2'],
],
// B_settings
"self.B_settings_2" => [
"w3" => $_POST['w3'],
"w4" => $_POST['w4'],
],
sieht die json-Datei nach dem Absenden für die ersten einfachen Parameter plötzlich so aus:
{
"Self.P1": null,
"Self.P2": null,
"Self.P3": null,
.....
"Self.P21": null,
Nur die verschachtelten Parameter, die danach kommen:
"self.A_settings": {
"w1": "Antwort1",
"w2": "Antwort2"
},
"self.B_settings_2": {
"w3": "Antwort3",
"w4": "Antwort4"
},
werden nach wie vor korrekt in die Datei geschrieben!
Weiß einer oder hat eine Theorie wieso das eine problemlos funktioniert und bei der anderen Variante plötzlich systematisch alle einfachen Parameter (also Self.P1-21) den Wert "null" zurückgeben?