[megoldva, átírás] miért kerül be a $_COOKIE tartalma a $_REQUEST-be?

(megoldva: újraírás lesz, request_order nincs 5.2-n, variables_order EGPS esetén a COOKIE létre se jön, pedig kéne, ergo újraírás lesz adott programrészeken)

A kérdés: miért kerül be a $_COOKIE tartalma a $_REQUEST-be?

Helyzet:

Adott egy webapp, amiben a COOKIE tartalma bekerül a REQUEST-be, minden futáskor.

Próbáltam az alábbi beállításokkal:

php.ini
request_order = "GP";
variables_order = "GP";
register_globals = "Off";

De ezzel látszólag kikapcsoltam a SESSION változót, GP-t GPS-re módosítva szintén nem jó.

PHP verzió: 5.2.14 (rendszergazda nem frissít)

SZERK.: Windows-os szerverről van szó, ha ez változtat valamin. (Az a kevés írás amit találtam mind IIS-ről és hasonló jelenségekről szól.)

(nem ismerem a legacy php-k php.ini beállításait, és google nem adott értelmes találatokat a problémára, a legtöbb az volt, hogy request_order-t és variables_order-t kapcsolgassak, illetve hogy "régen" a COOKIE része volt a REQUEST array-nek automatikusan...de már a request_order és a variables_order se úgy működik, ahogy a doksi alapján kéne neki, de lehet félreértelmezem)

Hozzászólások

Miért, szerinted hogyan küldi el a böngésző a cookie tartalmát a szervernek, ha nem a requestben?

Az _REQUEST egy komplex szuperglobális, a _GET, _POST, _ENV, satöbbik összefuttatásából keletkezik.
Hogy mi ír felül mit, meg egyáltalán melyik kerül bele, azt a variables_order adja meg (nyilván a jobbrább levő felülírja a meglevő kulcsot). Ez az elmélet.

Hogy a valóság ebből mi, azt pedig az aktuális php binárisod dönti el XD

Megoldás van, csak mivel nem a programon belül történik a cookie-k bevonása, ezért nem is ott akartam megoldani (helyén kezelni a dolgot), azóta is php.ini problémának látszik, mivel több helyen is futkos a program, és csak itt jelentkezik a probléma, nem akarok egy komplett workaround-ot írni rá.

Ebben a verzióban még nincs request_order (lásd a doksiban. Milyen gondot okoz egyébként a kuksik jelenléte?

request_order nincs, de variables_order van.

(csak a későbbi kompatibilitás miatt írtam bele, ha nem lesz más megoldás)

A gond: vannak olyan programrészek, amik a REQUEST tömböt egyben dolgozzák fel, nem csak adott részeit, amit ráküldök, azt megteszi. viszont vannak most olyan értékek a request-ben, amiket nem tud használni, mert nem léteznek hozzá kapcsolható adatok. A terv az volt, hogy egy rugalmas feldolgozót írunk, amit nem kell minden új opció létrejöttekor módosítani, hanem elég azt az új opciót átküldeni neki, illetve a hozzá kapcsolódó adatokat feltölteni adatbázisba, ő megkeresi majd, és megcsinálja. Az elv jónak tűnt, 5.3-on POST és GET van csak a REQUEST-ben, hibatűrés megoldva azzal, hogy ha valaki valamit ráposztol, akkor eldobja magát a program hibakóddal, viszont a cookie-ra nem gondoltunk.

Amit most csinálok: variables_order EGPS-re állítva, viszont most úgy tűnik mintha a $_COOKIE se jönne létre.