Autor Zpráva
Black Wolf
Profil
Dnes jsem narazil na zajímavý problém se session a docela by mě zajímalo jeho vysvětlení:

Dělal jsme formulář, který měl za úkol odeslat data v podobě pole hodnot metodou post, následně při zpracování v PHP uložit do session. Formulář měl jít odeslat i vícekrát a to tak že při každém odeslání se přidá další pole do session – tzn. výsledná proměnná v session měla být polem obsahujícím pole hodnot z jednotlivých odeslání formuláře. Udělané jsem to měl takto:
$window = $_POST['window'];
...ošetření vstupu...
$_SESSION['window'][] = $window;
Zcela logicky by $_SESSION['window'] mělo být pole polí $window, jenže nebylo. Výsledek byl třeba takovýto:
Array
(
[type] => 1
[profile] => 1
[width] =>
[height] =>
[count] => 1
[sublins] => Array
(
[status] => Ne
)

[parapets] => Array
(
[status] => Ne
)

[8] => Array
(
[type] => 1
[profile] => 1
[width] =>
[height] =>
[count] => 1
[sublins] => Array
(
[status] => Ne
)

[parapets] => Array
(
[status] => Ne
)

[8] => Array
*RECURSION*
)
)

Jedna zajímavá věc je, že tam je něco úplně jiného než bych očekával (většinou se tam ještě navíc uložily i jiné hodnoty než jaké jsem vyplnil ve formuláři) a další je ta rekurze (programuju už docela dlouho, ale s rekurzivním polem jsem se ještě nesetkal, obzvláště když vznikne samovolně).

Zkoušel jsem přidávané položky v $_SESSION['window'] ručně indexovat, zkoušel jsem tam přidávat nový obsah pomocí foreach a spoustu jiných věcí, ale výsledek byl pokaždé zhruba stejný (jediný úspěch byl, že jsem se zbavil té rekurze).

Nakonec pomohlo stávající obsah $_SESSION['window'] vložit do proměnné, nový obsah přidat k ní a původní obsah $_SESSION['window'] nahradit obsahem té proměnné.

Velice rád bych však zjistil proč to dělalo to, co to dělalo. Nesetkal se s tím někdo, případně nenapadá někoho příčina problému?

Předem děkuji za případné odpovědi
Toto téma je uzamčeno. Odpověď nelze zaslat.

0