session_write_close();

2009.09.15. 08:02 stack

Régen írtam már "napi szívás" címkéjű posztot, pedig alkalom lett volna rá... igaz, hogy kicsit offtopic, de a legutóbbi szívás annyi időmet elvette, hogy mégiscsak megér egy bejegyzést.

Történet ott kezdődött, hogy az egyik honlapon egyes szolgáltatások eléréséhez fizetni kell, legkézenfekvőbb megoldás az országos bankunk bankkártyás átutalása bizonyult.

Maga a telepítés is már megért volna egy posztot. Sosem voltam igazán rendszergazdai vénákkal megáldva, így amikor láttam, hogy kapok tőlük egy setup.exe –t, amivel klikkelgetéssel átkonfigurálhatom a PHP-met, akkor bátran elindítottam. Először furcsáltam, hogy megkérdezi a php.ini helyét. Merthát, a franc érti, hogy miért, de a Window mappába van, hol máshol? :) Ám a setup.exe nem volt rest, és az Apache konfigot jól átszabta, mondván, hogy a PHP is a Window mappába van... bazz... mivel átírt konfig fájlról készített mentést, így nem volt akkora probléma.

Valójában, semmi másról nem szólt ez a telepítés, minthogy a PHP-hez hozzá kellett adni az OpenSSL, illetve SOAP modult, azaz kettő darab kommentet ki kellett venni a php.ini-ből. Ja, azt azért nem annyira ellenőrizte, hogy az OpenSSL biztos fog-e működni, merthogy az sem annyira egyértelmű. Némi Google, majd két fájl átmásolása egyik könyvtárból a másikba és már nincs is gond. :)

(félreértés elkerülése végett, csak a saját gépemen használok ilyen operációs rendszert, az éles rendszer valami unix-os cuccon fut)

De, hogy ne csak negatív megjegyzést kapjon kedvenc bankunk, nagyon korrekt mintakódokat adtak, bőséges kommenttel. Szinte elsőre elindult a banki kapcsolat.

A probléma akkor lépett fel, amikor az ügyfél a banki átutalás közben a vissza gomb megnyomásával újra akarta tölteni a saját oldalát. Az első reakció, illetve a visszajelzés felém az volt, hogy az Apache meghalt… egy vissza gomb miatt…

Persze a minta kódnál nem volt ilyen probléma, ott lehetett használni a vissza gombot… majd jött a közel három éjszakámat betöltő kutatás, vajon mi a franc különbség van a két kód között? Az átdobó oldalt én GET-tel hívtam meg, míg a mintakód POST-tal, a keretrendszernek köszönhetően bővebb fejléc adatokat használtam.… némi átalakítással a két oldal pontosan ugyanolyan fejléccel mentek. Ám a problémán ez semmit sem változott. Az ügyfél hibajelzése némileg pontatlan volt, mert az Apache végülis nem halt meg, csupán a böngészője nem kapott semmiféle választ. Böngésző kikapcs, bekapcs után sem. És az csak a probléma mellékhatása volt, hogy az Apache újraindítása után megjavult a helyzet. (bár ennyiből már sejteni lehetett volna, hogy mi a gond, de... :)

Kínomban elkezdtem kikapcsolna a rendszerből részeket, és láss csodát a session kikapcsolása után megjavult a helyzet. A mintakód persze nem használt session-t, így mint kiderült az összes átalakítás teljesen felesleges volt, mert a küldéshez semmi köze nem volt a problémának. Majd némi utánajárással a következő diagnózis született: A banki kapcsolat elindult, megállította a szállat, a böngészőhöz tartozó session fájl meg továbbra is lockolva maradt. Az örömteli megoldást így aztán a session_write_close függvény kiadása adta a banki kapcsolódás előtt...

5 komment

Címkék: php napi szívás

A bejegyzés trackback címe:

https://extjs.blog.hu/api/trackback/id/tr961382793

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Lzolcsi 2009.09.15. 10:09:26

Basszus, pontosan ezzel szivtam en is par napja.
Csak en azt hittem, hogy a szerver allt meg valamiert, mert a php, ami atdobta a usert a fizetooldalra az tudtam, hogy fut tovabb, es gondoltam ezzel van valami gubanc.
Koszi a tippet! :)

stack 2009.09.15. 18:49:17

:)

Remélem valóban segítettem! :)

Lzolcsi 2009.09.15. 19:55:17

Ez majd akor derul ki pontosan, ha szabirol visszaerek meloba. :)

prometheus_X 2009.09.20. 15:03:57

Ezzel adtál egy jó tippet a keretrendszeremhez, ugyanis 5 év ide vagy oda, sosem gondoltam volna, hogy ilyen galibák is lehetnek a session kezelésnél.

Köszi!

Mizu 2009.11.12. 17:44:30

Hm.. még jó hogy ráataláltam erre a postra mi pont most kezdünk bele :)

köszi stack!

ExtJS blog, mi ez?

Az ExtJS egy JavaScript keretrendszer, melyet a blog írója elfogultan a legjobbnak tart, és ez a blog olyan apróságok gyűjteménye, melyek ExtJS használata közben felmerültek, eszébe jutottak...

Címkék

ajax (4) alignto (1) állás (3) analytics (1) anchorto (1) android (4) animate (2) array (9) auto (1) back button (1) beautifier (1) beforeevent (1) benchmark (1) blur (1) budapest.js (1) button (1) canvas (1) capture (1) case sensitive (1) center (1) change (1) cikkajánló (1) class (2) closure compiler (1) collapse (1) combobox (3) comment (1) console.log (2) contextmenu (2) core (2) count (1) css (15) csv (1) dataview (1) date (4) datefield (3) datepicker (1) debug (1) doksi (1) dragdrop (1) easing (1) eclipse (1) editor (1) element (5) error (5) eval (2) event (1) fejtörő (1) field (2) fieldset (1) filter (1) firefox (4) firefox extension (2) focus (3) fonts (1) fun (1) function (1) google (2) google chrome (1) grayscale (1) grid (4) group contact (1) header (3) height (2) hidden (1) hirek (2) history (1) htaccess (1) html5 (2) htmleditor (2) https (1) icon (3) id (2) ie (2) ie6 (1) ie9 (1) iframe (3) image (2) indexof (1) javascript (1) jquery (2) jslint (2) jsmin (1) json (7) keymap (1) kipróbálom (2) könyvajánló (2) label (1) layout (1) lint (1) log (1) loop (1) magyar (2) mandelbrot (1) mask (1) math (1) maxlength (1) mistake (1) mysql (5) napi szívás (16) nem extjs (12) node (1) nth child (1) number (1) off (5) offline (1) operator (1) override (20) pagesize (1) paging (2) panel (2) php (7) picker (1) plugin (3) pozicionálás (2) preload (1) print (1) propertygrid (1) pseudo (3) readonly (2) record (1) regexp (1) replace (1) resizable (1) rotate (1) round (1) scale (1) sencha touch (2) server (1) shuffle (1) slider (1) sort (3) sortable (1) store (2) string (7) sum (1) tabchange (1) tabpanel (1) tab key (2) tdd (1) template (1) textarea (2) textfield (1) textitem (1) theme (2) throw (1) timer (1) timestamp (1) title (2) toggle (1) toolbar (6) tools (1) total count (1) transparent (1) tree (1) treenode (1) trigger (1) truncate (1) try (1) ucfirst (1) undefined (2) unique (1) unload (1) urlencode (1) utf8 (2) verzió (1) video (1) viewer (1) viewport (2) visible (2) vtype (1) window (2) xtype (1) zindex (2)

Extjs.blog.hu - RSS

Kérdés?