PHP AJAX kommunikáció és session_start hiba.

PHP AJAX kommunikáció és session_start hiba.
2012-10-10T08:49:20+02:00
2012-10-14T23:39:12+02:00
2022-11-27T02:55:40+01:00
robcaa
Lenne hozzátok, egy elég komplikált kérdésem, nem jutok vele egyről a kettőre.
PHP, Ajax kommunikáció történik JSON objektumokkal. Oda-vissza küldés.
A php hív meg Class fájlokat, ami az adatbázisért felelős.(SqlClass.php). Ez OOP.
Több adatbázis van, felhasználó név alapján, szeretném eldönteni, hogy melyik adatbázishoz csatlakozzon.
Tehát ide mindig dinamikusan szeretném adni, a táblát az adott felhasználóhoz: mysql_select_db($változó);
Session-re már gondoltam, de mivel a session_start-ot ha meg hívom az egész fájl elején akkor session_start() header limit errort kapok. Így ez az egész ajax, halálához vezet mindig.

Tehát szükséges lenne valamilyen globális változó, vagy valamilyen más dologra. COOKIE nem jó, mert azt böngészőkben engedélyezni kell, ha valakinek véletlen nincs bekapcsolva, akkor úszott az egész. Bármilyen ötletet várok! Akár azt, is ha ezt valaki máshogy oldaná meg. Előre is köszönöm a válaszokat!
Mutasd a teljes hozzászólást!
Van valahol egy kimeneted a session_start() előtt, ami a gondot okozhatja. Célszerű lene ezt a kimenetet megtalálni és megszüntetni. Nem biztos, hogy a session megbízhatóan fog így működni.
Mutasd a teljes hozzászólást!

  • Pedig session-nel kéne megoldani. Milyen hibaüzenet az a "session_start() header limit error"?
    Mutasd a teljes hozzászólást!
  • Ez a hibaüzenet: Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started a...

    Több fájlba is történik session_start(), de ebben az egyben eredményez csak hibát. Viszont ha kiveszem a session_start()-ot akkor pedig nem érzékeli magát a sessiont. Az-az nem létezik session. Tehát mindenféle képen kéne session_start() De a hiba nem engedi.
    Mutasd a teljes hozzászólást!
  • probléma megoldva :D
    A megoldás:
    @session_start();

    A kukac jel meg gátolja a hiba üzenetet, így nem írja ki:
    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started a...

    Így az ajax nem kap felesleges üzenetet amit ő nem vár, ezért nem hal meg.

    De ha ezzel valamilyen gondot láttok, akkor nyitott vagyok a dolgokra.
    Mutasd a teljes hozzászólást!
  • Van valahol egy kimeneted a session_start() előtt, ami a gondot okozhatja. Célszerű lene ezt a kimenetet megtalálni és megszüntetni. Nem biztos, hogy a session megbízhatóan fog így működni.
    Mutasd a teljes hozzászólást!
  • Nos igen a session start előtt volt egy karakter amit a fájl kódolása okozott (UTF-8)
    Most hogy átállítottam UTF-8 BOM nélkülire így teljesen jól működik @ karakter nélkül is
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd