Autor Zpráva
Anonymní
Profil *
Zdravím všechny a prosím o radu. Vytvářím stránky v php+mysql. Mají charakter "průvodce", tj. na první stránce je nějaké vyhledávání, parametry se z formuláře postem pošlou na druhou stránku, která selectem zobrazí výsledky. Na ně se dá kliknout a uživatel se dostane na podrobnosti na třetí stránce. Původní koncept byl s jednou "main" stránkou, která si includuje vnitřní obsah podle toho, kde se uživatel nachází.
Problém nastal s "platnost stránky vypršela", když chci použít tlačítko back a dostat se zpět z detailů na výsledky. Našel jsem, že je potřeba poslat headers, nicméně mi toto řešení nefunguje. Vím, že se to musí dít úplně na začátku souboru, což dělám. Dokonce jsem kvůli tomu stránky předělal na 4 samostatné stránky, abych na té konkrétní mohl volat headers, ale bez úspěchu. Nevím, kde přesně headers vložit. V příkladu, co jsem našel, se formulář odkazoval na sebe sama a tam to bylo jasné.
Napadá Vás někoho, kde dělám chybu? Zkoušel jsem si příklad namodelovat na co nejtriviálnějších stránkách a tam to samozřejmě chodí ok :o(
jozob
Profil
Pokiaľ dáš header na začiatok do includovanej stránky, v hlavnej stránke to nebude na začiatku. Doporučujem použiť riadenie výsupu, ukladať data do cache. Problematika je pomerne obsiahla, ale človek nemusí byť odborník, aby to mohol využiť. Stačí, ak na začiatok HLAVNEJ stránky (teda tej, do ktorej sa budú ostatné includovať ) pridáš funkciu ob_start() a nakoniec ob_end_flush().

príklad:
--- HLAVNÝ súbor ---

<?php
ob_start();

/* nejaky kod */
/* tu sa moze kludne vyskytovat header, aj po zacati vystupu */

include($includovana_stranka); /* v includovanej stranke sa moze kludne nachadzat header */

/* nejaky kod */
/* aj tu sa moze kludne vyskytovat header, aj po zacati vystupu */
ob_end_flush();
?>
Anonymní
Profil *
Když už tady o tom píšete, můžete mi někdo poradit jaké hlavičky je potřeba poslat abych v MSIE a pokud možno i dalších nedostával při stisku tlačítka zpět hlášku "platnost stránky vypršela". Odesílám data z rozsáhlého formuláře metodou POST, zaměnit za metodu GET nemůžu z důvodu velikosti(délky) odesílaných dat. Děkuji
Leo
Profil
"Když už tady o tom píšete, můžete mi někdo poradit jaké hlavičky je potřeba poslat abych v MSIE a pokud možno i dalších nedostával při stisku tlačítka zpět hlášku "platnost stránky vypršela". Odesílám data z rozsáhlého formuláře metodou POST, zaměnit za metodu GET nemůžu z důvodu velikosti(délky) odesílaných dat."

Poslete hlavicku pro presmerovani, Location - stranka, ktera dostane POST data nesmi udelat vystup do prohlizece. Leo
Anonymní
Profil *
OK, tak takto to opravdu "funguje", samozrejme je to ale dost podobne tomu jak kdybych misto POSTu použil GET, takže se přes tlačítko zpět dostávám na jinou stránku než jsem původně chtěl. Dneska už hledám na webu půl dne nějaký lepší způsob, ale ještě jsem nic nenašel. Dá se to udělat nějak lépe např. pomocí Javascriptu, nebo prostě nějak přepsat Javascriptem hisorii, aby člověk nemusel všude přesměrovávat. Dělám rozsáhlejší webový systém, kde se to formuláři je hemží. Nemáte nějaký tip?
Leo
Profil
Ja netusim na jakou stranku se snazite pres tlacitko Zpet dostat, ani jak mate postavenou aplikaci, jen rikam, jak se resi ten problem s POSTem. Formular poslete na dany skript, ten na serveru udela akci (napr. ulozeni dat) a presmeruje na jinou stranku. Tot vse. JavaScript bych do toho netahal, neni proc, ale tezko rict, co mate vlastne za problem... Leo
Rafiki270
Profil *
Problem je v tom ze tyhle ob_start a ob_end_flush ukladaji vsechno mezi do mezipameti ... tzn ze to docela dost zatezuje server navic ... dovolit si to muzete u maleho webu nikoli vsak u vetsiho projektu s nekolika tisici uzivateli denne ... :-( ...
Toto téma je uzamčeno. Odpověď nelze zaslat.

0