Diskuze: Refresh při splněné podmínce (ale pouze jednou)
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 7 zpráv z 7.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
No a třeba teď to funguje...
To je jak to klasické meme.
Tak bych zatím neřešil
No...
A nakonec mi tedy nejshůdnější řešení přišlo nacpat
header("Refresh:0");
všude, kde dochází ke změnám.
Co myslíte?
Nerozumim ani slovu 
Ve 'chci docilit' mas nejaky blabol.
Co to ma vlastne delat, mi neni vubec jasne.
Ve 'zkusil jsem' je tez nejaky blabol, ktery bez kodu, ktery odpovida textu
nedava moc smysl.
header("Refresh:0"); Jsem nikdy nepouzil, netusim, co to udela. A tys to
nepopsal. jestli to presmeruje na tu samou stranku, php a to dal presmeruje, tak
by uzivateli mohl zobrazit uz jen vysledky php, ktery nikam nepresmeruje. Nebo
to cele ukonci uz pri prvnim presmerovani a zobrazi uzivateli jen 1.
Zkus treba nejaky kompletni jednoduchy program, ktery staci ctrl+c, ctrl+v a spustit. Nestacilo by treba ty podminky zkratit na $i++; a $i<50? Vis, jako, pro nas. Nemusis rozepisovat podrobnosti, pokud nejsou potreba.
Ja bych pro presmerovani pouzil tag <meta> nebo javascript window.location.href. V php presmerovavam obvykle jen jednou pomoci header() a obvykle u formulare, aby mi uzivatel omylem 2x neposlal stejna data.
echo "SORRY JAKO!";
Fakt jsem se snažil pochopit, o co Ti jde. No, takže pokud je realizovaný počet pokusů právě o 1 menší, než celkový povolený počet pokusů, stránka vygenerovaná PHP skriptem se začne zběsile stále dokola refreshovat v intervalu 0 sekund (jak se načte, okamžitě se začne načítat znovu). Další případné zvýšení $_SESSION['realizedTries1Safe'] o 1 by ale musel provádět jiný skript zobrazovaný ve stejném prohlížeči, protože ve stránce refreshované po 0 sekundách už uživatel nemá šanci cokoliv zadat (skoro to vypadá, jako by to běželo ve FRAMESETu či dvou nezávislých JavaScriptových boxech atp., ale nechci hádat, to by se nám to poněkud rozvětvilo).
Jinak se dá říct, že "refresh pouze jednou" se provede už tím, že PHP skript stránku vygeneruje a pošle prohlížeči (další refresh by vrátil stejný výsledek, pokud by tam nebylo třeba nějaké odpočítávání času, nebo zpracování něčeho jiného, co se mění nezávisle na tomto skriptu, případně načítání počtu refreshů do session atp. - tím se nám to opět může větvit, takže radši počkám na upřesnění).
Můžeš nějak upřesnit, o co Ti vlastně jde? Jsem si téměř jist, že rozumné řešení nebude problém vymyslet.
No, celé to bylo jen zacyklené, teď už přesně nevím jak a kde, ale začlo to fungovat - šel jsem dál.
Šlo mi hlavně o to, že mám v PHP nějakou logiku, která se vykoná a potřebuji pak zobrazit aktuální stav proměnných.
Tudíž jsem po vykonání příkazů v různých větvích přidal
header("Refresh:0");
Takže vše funguje, nejradši bych se sám označil jako řešitele, ale
přijde mi to nevhodné a nevím - je to vůbec správně?
Mluvím právě čistě o jazyku PHP, žádném dynamickém (JS? U něho jsem se
ještě nezastavil).
P.S. Přesto díky moc za pozastavení nad dotazem! 
P.S.2 Když mi někdo nepoví, zda dělám správně, klidně to někdo
uzavřete (nebo uzavřu časem sám)
Spis, nikdo takove veci nezkousel. Promenou obvykle lidi ulozi do db nebo
session. Nepotrebuji zahlcovat server opakovanym refresh. Staci treba jednou za
17s (u chatu), kdyz se nic nedeje.
Kdyz to nikdo nepouziva a nezna duvody, ktere te k tomu vedou, tezko se da
posoudit spravnost takoveho zpusobu.
Zobrazeno 7 zpráv z 7.