Awojte
pisemi takyto Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /3w/wz.cz/k/kelap/index.php:124) in /3w/wz.cz/k/kelap/index007.php on line 2
includoval som a v includovanom subore je v druhom riadku session start
ako dosiahnem aby sa session cookie odoslalo ako to odstranym.dakujem
PS: Ten includovany subor funguje aj napriek Warning-u
dakujem
v index.php na radku 124 neco vypisujes. dokud neposles hlavicky, nemuzes nic vypisovat (session_start se prave snazi ty hlavicky posilat)
Jednoduse receno. Pred volanim funkce session_start se nesmi byt nic na vystupu.
Reseni: Volat funkci v hlavnim souboru hned na zacatku. Pokud tam jiz je a ches z nejakeho duvodu mit tuto funkci i v includovanem souboru, pak staci chybu funkce potlacit zavinacem.
Diki
takze ten zavinac dam pred co
<? include ("ddsad.php") ?>
kelap: "include ("ddsad.php")" No FUJ! Include je jazykový konstrukt, žádná funkce.
Zapomeň na zavináč, jestli ten soubor "ddsad.php" posílá nějaký obsah ke klientovi, tak jej vkládej až po zavolání session_start()
ten session_start je v druho, riadku ddsad.php
ten session_start je v druhom riadku ddsad.php
lepší řešení: projdi si kód a zajisti, aby se na výstup nic neposílalo před session_start (žádný echo, žádný html kód, ani v hlavnim souboru, ani v includovanym), pak to bude fungovat a bude to tak správně
horší řešení: použij zavináč - takhle: @session_start (to funguje víceméně u libovolný funkce). Takhle ti zmizí chybový hlášení (ten zavináč znamená: pokud dojde ve funkci k chybě, nevypisuj chybové hlášení), ovšem je třeba si uvědomit, že potom fakt, že se nezobrazuje chybové hlášení, neznamená, že k chybě nedochází.
kelap (kelap.wz.cz)
stranka i soubor ma HEAD / BODY
Apache bohuzel neposila stranku jako celek, ale po kouskach. Nejdriv vyzaduje HEAD. Do HEAD patri SESSION a COOKIES (S/C). (v hlavicce udavas, ze budes pracovat se S/C)
Bohuzel, kdyz jednou zacnes neco psat do BODY, pak se povazuje HEAD za uzavrene a nelze v ni nic uz menit.
A jakekoliv vypsani pres echo ma za nasledek, ze se HEAD ukonci a zacne se BODY. Pak zavolas session_start() nebo cookiescosi() a to uz nelze. Nemuzes prepisovat neco, co uz bylo (nebo mohlo byt) poslane apachem klientovi. To proste nejde,
Predpokladam, ze je to nejaky phpRS nebo podobny produkt, kde to prave tak je napsane. Lze pouzit horsi reseni, viz RUR, kde potlacis chybovou hlasku. Ale pak ti nemusi spravne neco fungovat. Lepsi je chybu odstranit.
U phpRS myslim staci pouzivat posledni verzi.
U phpRS jsem videl tuto chybu v pripade, ze byl chybny config.php , nejaky editor tam na zacatek pridal 3 znaky.
U phpRS dale pak, kdyz se napsal cesky text do nazvu stranky. To by bylo ok, ale kodovani souboru neodpovidalo dane cestine a vysledkem pak je, ze to nepovazuje program za ceske znaky a nerozumi jim. Proto ukonci PHP a cely config a vysledkem je pak, ze nic nejde.
peta: trochu se ti to mota. sekce head v html souboru a hlavicka http odpovedi, ve ktery se posilaji cookies, jsou dve ruzny veci.
+- priklad na necem, co zna
Muzes ot vysvetlit lepe :)