Autor Zpráva
gugoga
Profil *
Ahoj lidi, nevíte někdo co za hlášku je tohle: Cannot send session cache limiter a taky co s tim mam dělat? Díky
koudi
Profil
Klasický problém - headers already sent, řešilo se to tu asi tisíckrát
gugoga
Profil *
To ano, ale já nemám headers already sent, proto se ptám :)
Acci
Profil
Ale za tím máš napsané headers already sent, nebo ne?
gugoga
Profil *
Ne, mam tam jenom tohle: Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at d:\web\eshop\kosik.php:1) in d:\web\eshop\kosik.php on line 8
gugoga
Profil *
Když potom dam před session_start() zavináč, tak je to v pohodě, ale stejně...
gugoga
Profil *
Když potom dam před session_start() zavináč, tak je to v pohodě, ale stejně...
wizard
Profil
No a Ty tam to headers already sent nevidíš? :)
Acci
Profil
gugoga
Není to v pohodě, pak ta funkce nefunguje. Pokud se, jestli už před tím neposíláš nějaký vůstup (můźe to být třeba i prázdný řádek na začátku souboru nebo identifikační byty v UTF)
gugoga
Profil *
Takhle vypadá začátek souboru:


<?php

session_start();

require_once("lib/class.db.php");
require_once("lib/settings.php");


Nic na začátku není (nebo to nevidím)
Leo
Profil
A nemate to v kodovani UTF8? Leo
gugoga
Profil *
Mam a už koukam, že to není jen muj problém. Bohužel nevím jak to v UE Studiu nastavit
Meldo
Profil
skus odstranit ten prazdny riadok, popripade pouzi
ob_start();
ob_en_flush();
Meldo
Profil
<?php

ob_start();

session_start();

require_once("lib/class.db.php");

require_once("lib/settings.php");
ob_end_flush();
finc
Profil
Viděl bych to spíše než na tyhle šílené ošetření se podívat, zda nemáte v php.ini auto_session_start zapnuty.
Stejný problém jsem měl v PHP5, který jsem pak vyřešil v php.ini.
Zkuste například script bez session_start(); zda Vám bude fungovat uložení session.
Meldo
Profil
finc
Viděl bych to spíše než na tyhle šílené ošetření...

preco sialene? Je nieco, preco to nepouzivat? Zatail som s tym nemal zlu skusenost. Skor naopak.
finc
Profil
Proč?
Standartně by mělo být použito něco jako:


session_start();

$_SESSION["promena"] = 1;

echo $_SESSION["promena"];


Pokud toto nefunguje, bude chyba někde jinde. Používat na session_start(); ob_start(); mi přijde jako drbání levou rukou za pravým uchem ;)
Leo
Profil
"Zatail som s tym nemal zlu skusenost. Skor naopak."

No zaprve to umoznuje kod priserne bastlit a nemit v nem elementarni logiku, takze je to az posledni moznost. Pouzivat to jen proto, ze neumim udelat veci v logickem poradi je smutne. Dalsi vec je ta, ze kod do prohlizece nechodi po kouskach, coz by mohl, ale az po celem zpracovani. Output buffering muze byt uzitecny pokud chcete vystup JAKO CELEK dal zpracovat - zazipovat, ulozit do souboru, atd. ale jinak ne. Leo
24k
Profil *
>> JAKO CELEK dal zpracovat - zazipovat, ulozit do souboru, atd. ale jinak ne. Leo

Rozhodne nesouhlasim.

Ob_Start(); vyuzivam hojne na svem primarnim webu a to z jednoho prosteho duvodu
Stranky includuji do stredu webu, a mam tam mnoho formularu , na jedne strance je FORMULAR i AKCE zpracovani a pokud napr. uzivatel neco nevyplni ci vyplnil spatne echne se chybova hlaska. Kdybych nemel bufferovani, musel bych pouzivat stranku nekde mimo a vracet to tam zpet pres header location, ukladat do sezeni hodnoty co napsal do inputu a to mi prijde jako vetsi reznicina.
Leo
Profil
"Stranky includuji do stredu webu, a mam tam mnoho formularu , na jedne strance je FORMULAR i AKCE zpracovani a pokud napr. uzivatel neco nevyplni ci vyplnil spatne echne se chybova hlaska."

Nechapu proc by to neslo udelat bez ob, Leo
24k
Profil *
pac pri uspesne akci pouzivam header location ktera je soucastni formulare... tak proto :)
finc
Profil
A co třeba použít podmínku if? :D

if ($_POST["akce"] == "ulozit") {
// zpracovani formulare
header();
exit();
}

// vypis stranky
24k
Profil *
No tak tohle muzu nacpat leda do indexu na nejvyssi pozici pred veskery vystup a to ma byt cistci zpusob nez Ob_start();? ;-)
finc
Profil
Ještě jsem zapoměl doplnit. Pokud při zpracování formuláře dojde k chybě, tak header nepošlu, ale zobrazím formulář, kde bude nějaké chybové hlášení z proměné, do které plním chybové hlášky.
Dělám v php docela velký projekt, ale nikdy jsem nepotřeboval použít ob.
Ani při uploadu, ani při downloadu. Vše se dá vyřešit úplně jinak.
finc
Profil
Proč do indexu? Samozřejmě jsem nepsal celý kod.
Jedna z věcí je zpracování skriptu a druhá věc je její zobrazení.
Používám to v OOP. Nevím, co je na tom nečistého. header můžu odeslat, pokud jsem na stránku zatím nic nezobrazil (laicky řečeno).
Leo
Profil
"No tak tohle muzu nacpat leda do indexu na nejvyssi pozici pred veskery vystup a to ma byt cistci zpusob nez Ob_start();? ;-)"

Samozrejme, neco se vam nezda? Leo
24k
Profil *
Nezda se mi prave tento zpusob.
Necham si skript logicky jak jde po sobe bez podminek a jinych habadur s pouzitim jedne fce navic, ktera mi nijak neznehodnocuje web.
Leo
Profil
Je to vas web, tvorte si ho jak chcete :-) Leo
finc
Profil
OB má sloužit jako jistá berlička pro případy, kdy potřebujeme výstup uchovat. Ve většině případů to nikdy potřebovat nebudete. Můžeme se tady začít bavit i o rychlosti, ale myslím, že je to zbytečné. Navíc by to řešení pomocí ob stejně prohrálo :)
Já osobně bych se toho řešení dost bál. Ten skript se Vám ZPRACUJE!!! a pak až vyhodnotí. Asi ale záleží na logice. Jen neznám moc lidí, co to takto používají ;)
24k
Profil *
www.pesonline.info ;))

Web pomaly neni a pokud je o trosicku pomalejsi je to zalezitost SQL ktereho tam je opravdu MOC :)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0