Diskuze: Jak přidat custom HTML za <body*>?
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 10 zpráv z 10.
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.


Sak, zapomen chvilku na ob_start a zkus tam pridat testovaci kod, pak zdroj +
vystup vypisuj pres htmlspecialchars a uvidis, co to dela, ne? (pridani
baneru)
Ja mam pocit, ze tyhle veci se delaji v .htaccess, mozna linuxem, na serverech,
ze to do php snad ani nejde. Ale musel bych zkusit googlovat. Jeste jsem nic
tekoveho nepotreboval.
tak, oprava, 3.
$pattern = '[<]body[^>]*[>]'; - je spatne, viz forko programujte.com, to mi rano nedoslo
$pattern = '~[<]body[^>]*[>]~';
$pattern = '/[<]body[^>]*[>]/'; // nebo takto, a porom mas na programujte jeste to body velkymi pismeny
$pattern = '~[<]body[^>]*[>]~im'; // a multiline, vice radku, nekonci u privniho \n
Hej, sak v nejhorsim muzes pouzit strpos. Najit <body a od te pozice prvni
>. A ziskas pozici, kam muzes pridat dalsi kod. Potom to cele zplacat pres
substr
substr($html,0,$pos).'mujkod'.substr($html,$pos+1)
Nevim jak teď, ale před několika lety toto webhosting Endora neřešil, a dával to naopak na konec každého souboru. Hezky za </html>. Kód byl sice W3C nevalidní, ale dnešní prohlížeče si s tím bez problému poradí.
Peter Mlich: Děkuji ti moc, že sis dal s tím tolik práce a zamyslel se nad mým problémem. Nicméně, došlo mi, že ta cesta PHP a načítání obsahu celých HTML dokumentů do bufferu a nad tím provádění dalších operací by jen zpomalovalo načítání stránek a vyžíralo paměť na serveru.
Daniel Vítek: Tohle je hodně dobrá poznámka, děkuji ti. To by fungovalo, ale má to háček, je to v zápatí, já to potřebuji v záhlaví. Zkoušel jsem to pomocí absolutního pozicování CSS, ale to mi zakrývalo content webu. Musel bych hrabat do CSS konkrétního webu, což je podobný problém jako výše uvedený, chtělo by to zase nějak podvrhovat zdrojový kód pomocí PHP. Pak jsem to zkoušel přes javascript, aby to nezatěžovalo server, což se mi ale též nepovedlo, firefox nezpracovával </script> tak za koncovou značkou </html>, nebo mi to jen nefungovalo, nevím.
Kdyby tě napadlo, jak to z patičky dostat do zahlaví jednoduchým způsobem, byla by to pecka.
Zkus přiblížit o co konkrétního jde - nějaký banner?
Každopádně musíš počítat s tím, že i když to dostaneš hned za <body>, můžeš pak mít na webu navigaci, která bude mít fixní pozici nahoře, a to co ty si tam vložíš to stejně překryje. Případně tomu ten web může přes CSSko nastavit display: none a stejně se to nezobrazí.
Takže hodně záleží na konkrétním případu.
Cele to reseni je podle mne uplne na prd. Neco podobne pouzival wz.cz. Ale, po te, co mi zrusili stranky, tak muzu takovy hosting jen nedoporucit. (jsem tam mel nejaky prehistoricky mail tusim peter@mail.tw, na strankach jsem mel vsude jine mail a ani se neobtezovali mi napsat na ne).
No, co chci rici, ze pridavat do kodu na stranky je spatna vec. Treba CMS to moc nemaji rady. Lepsi je dat uzivateli moznost rici, kde bude kod vkladan, jako to melo to wz.
<!-- reklama --><!-- /reklama -->
Nebo, jak pise Vitek, pouzil bych ale htaccess a pridal ten kod na konec. Mohla by tam byt moznost, tesne pred odeslanim uzivateli kod nejka upravit.
Co se tyce pozicovani, melo by stacit nastavit
<html>...</html>
<style>html, body {position:relative; margin:0;
padding:0;}</style>
Dnesni prohlizece by to meli vzit. A nebo je mozne jeste pouzit vice body
najednou. vim, ze jsem to videl pouzivat nekde u mysqldump.php, nejaky program
pro import velkych sql souboru, ktere neslo protlacit pres phpmyadmin.php.
Pouzivali to k vykreslovani progressbar.
Daniel: Ano, banner.
Peter: To je zase sahání do vzhledu webu pomocí CSS, což ho může rozbít,
možná sem nepochopil jak to myslíš.
Jde o to, že už sem tím zabil tolik hodin času, že nakonec jsem se
rozhodl, že ten banner do záhlaví webu automaticky prostě dávat nejde. 
Kdyz nastavis position pro html,
body, pak by melo byt celkem jiste, kde je x=0, y=0. Coz ale muze rozbit vzhled
jejich css, mozna, trochu.
Mas tolik moznosti 
Jo, napadla mne takova finticka. Vpasovat tam js kod, ktery pri onmouseover
provede onclick a presmeruje to do nejakeho neviditelneho iframu
Vis, jakoze uzivatel neklikl, ale
tobe to zapocita klik na reklamu
Zobrazeno 10 zpráv z 10.