| Autor | Zpráva | ||
|---|---|---|---|
| Black Wolf Profil |
#1 · Zasláno: 12. 11. 2006, 20:52:33
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 |
||
|
Časová prodleva: 19 let
|
|||
Toto téma je uzamčeno. Odpověď nelze zaslat.
0