Diskuze: Jak dynamicky měnit titulek při načtení podstránky v php?
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.


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


Ahoj,
dříve jsem používal něco podobného, co je popsané v tomto
článku:
https://www.itnetwork.cz/…dani-stranek
S tím rozdílem, že já jsem si tam přidal pole, kde byly vlastně povolené
stránky. Bezpečnostně je to taky pořešené, protože povoluješ jen něco.

K těm stránkám jsem si pak přiřadil popisky, titulky a podobné
srandičky.
Můžeš se na to mrknout:
$avaliable = array(
'server' => array('Titulek 1', 'Nějaký ten popisek :)'),
'commands' => array('Titulek 2', 'Nějaký ten popisek :)'),
// ...
);
$page = 'pages/'; // Obsah stránky (ve složce pages)
$info = array(); // Info stránky
foreach ($avaliable as $file => $params)
{
if (isset($_GET[$file]))
{
$page .= $file . '.php';
$info = $params;
}
}
// Pokud nebyla nalezena daná stránka - není info
if (!$info)
{
// Přesměruje, aby v adrese nic nebylo
if ($_SERVER['REQUEST_URI'] != '/')
{
header('Location: /');
exit;
}
$page .= 'news.php';
$info = $avaliable['news'];
}
A pak normálně v HTML načteš ty informace do
<head>:
<title><?= $info[0] ?></title>
<meta name="description" content="<?= $info[1] ?>" />
Taky nesmíš zapomenout načítat obsah té stránky v
<body>:
<?php require $page; ?>
Jak si můžeš všimnout, tak vlastně šablona zůstane stejná, bude se
měnit jen ten titulek, popisek a obsah stránky.
Není to nic profesionálního, ale dřív mi to stačilo. Si to nějak uprav,
jak ti to bude vyhovovat. 
Snad ti má odpověď pomohla. Kdyby něco, ptej se. 
Takže ten kód co jste mi poslal výše mám vložit do indexu?
Nezlobte se nejsem v php ještě
tak zběhlý 
Já jsem dostal ještě i jiné řešení budu rád, když se mi na to
podíváte :
tento kód mám vložit do indexu mezi tág <head>:
<?php
if(!isset($_GET["page"]) ||
!file_exists("podstranky/".$_GET["page"].".php")) { ?>
<meta name="description" content="popisek" />
<meta name="keywords" content="něco, něco" />
<title>titulek</title>
<?php } else {
$_GET["info"] = $_GET["page"];
include "podstranky/".$_GET["page"].".php";
unset($_GET["info"]);
}
?>
a tento kód do podstránek:
<?php
if(isset($_GET["info"])) { ?>
<meta name="description" content=popisek podstránky." />
<meta name="keywords" content="kličové slova podstránky" />
<title>titulek podstránky</title>
<?php }
děkuji za názor 
Ahoj,
příště prosím vkládej kód do značek [ code ] (bez
mezer), aby to bylo lépe čitelné. 
Ano, ten kód se má vložit do indexu.
A moje řešení mi přijde přehlednější a bezpečnější. Upřímně
nevím, co by se stalo, kdybych třeba zadal do $_GET parametru ve
tvém řešení hodnotu '../.htaccess'. V tom mém máš alespoň pouze
povolené stránky a URL pak vypadá třeba jako /?server.
A co když mu zadám /?server&commands 
Pokud to chceš řešit takhle, tak tam aspoň přihoď break 
Ten puvodni template je spis zjednoduseny. Kdyz chces neco komplexnejsiho, je lepsi pouzit jiny system. Treba tridy a na zaver to vyrenderovat. Takovy priklad renderovani sablony
<?php
// template, !!! jednoduche uvozovky psat jako \'
$tpl = '
<title>{title}</title>
<nadpis>{nadpis}</nadpis>
<section>{section}</section>
';
$data = array(
'title' => 'moje title',
'nadpis' => 'muj nadpis',
'section' => 'Moje sekce'
);
// pridani zavorek {}
$keys = array();
foreach ($data as $key=>$value) {$keys[] = '{'.$key.'}';}
// render do $page
$page = str_replace($keys, array_values($data), $tpl);
echo $page;
echo '<pre>';
var_dump(array_values($keys));
var_dump(array_values($data));
// http://php.net/str_replace
?>
Zobrazeno 6 zpráv z 6.