Autor Zpráva
peto50
Profil
Napadlo ma vytvoriť takúto tému stránky:
<?php
$title="Titulok";
$description="Popis mojej stránky";
include("a.php")
?>
<h1>Moja stránka</h1>
obsah...
<?php include("b.php") ?>
súbor a.php:
<!DOCTYPE html>
<html lang="sk">
<head>
    <title><?php echo $title?></title>
    <meta charset="windows-1250">
    <meta name="description" content="<?php echo $description?>">
    <link rel="stylesheet" href="styl.css">
    <link rel="shortcut icon" href="favicon.ico">
</head>
<body>
<div id="telo">
<div id="hlavicka">...</div>
<div id="obsah">
súbor b.php:
</div>
<div id="vlavo">...</div>
<div id="päta">...</div>
</div>
</body>
</html>
Potom, keď budem potrebovať by som mal vedieť jednoducho zmeniť všetky stránky.
Je to dobré riešenie?
Má to nejaké nevýhody?
Existujú alternatívy?
panther
Profil
peto50:
Je to dobré riešenie?
řekněme, že je to běžně používané řešení a nevýhody nepřináší žádné (nerozdíl od výhody, kterou je snadná editace).
peto50
Profil
panther:
nespôsobuje to spomalenie načítania stránky?
panther
Profil
peto50:
ne. Jen potřebuješ server, který bude zpracovávat PHP (tedy, doma na počítači ti to fungovat nebude, pokud nebudeš mít rozběhaný server).

Ostatně, čas načtení „čistého“ HTML a includovaného HTML sis mohl změřit.
Someone
Profil
Já to dělám nějak tak.
<?php
    $povolene = array("uvod","kontakt","neco");
    $page = (isset($_GET['page']) && in_array($_GET['page'],$povolene)?$_GET['page']:'uvod');
    switch ($page) {
         case 'uvod' : $title = 'Úvodní stránka mých stránek'; break;
         case 'kontakt' : $title = 'Kontakt na mě'; break;
         // atd...
    }
?>
<html>
    <head>
        <title><?php echo $title; ?></title>
    </head>
    <body>
    <?php
         include("include/".$page.".php");
     ?>
    </body>
</html>
Han
Profil
Someone:
A čo keď by si pridával viac a viac stránok? Ručne písať 20 vetví switch asi dá zabrať..
Someone
Profil
Han:
V jakémkoliv případě tam (pokud chceš mít pro různou stránku různý titulek) musíš psát ty titulky ručně.
Han
Profil
Someone:
Titulky áno, PHP okolo toho už nie. Ale zaujímalo by ma, načo je dobré mať istý zoznam povolených stránok?
Someone
Profil
Když by ti někdo přepsal parametr v adrese, tak ti to vyhodí chybu, že se snažíš vložit soubor, který neexistuje.
Han
Profil
Alebo použiť if(file_exists(..)) { ... } Samozrejme, je na tom, ktorom človeku, čo sa mu zdá ľahšie. Mňa to napríklad prestalo baviť takto opisovať a všetko mám už iba v DB ;)
Someone
Profil
Han:
Nebo tak. Je to dokonce i jednodušší... Naučil jsem se to používat s tou množinou povolených, asi bych se to měl přenaučit.
nemeja
Profil
Someone:
Když by ti někdo přepsal parametr v adrese, tak ti to vyhodí chybu, že se snažíš vložit soubor, který neexistuje.
Han:
Alebo použiť if(file_exists(..)) { ... }

Co když tam někdo zadá název stránky, kterou on má ve složce, ale nechce jí nechat veřejně přístupnou? Mě to přijde jako dobrý řešení, pro nějaký menší stránky.
Han
Profil
Tak určite :) Nehovorím že je to zlé, len pri rozrastajúcich sa projektoch neefektívne.. A keď je stránok fakt veľa, myslím, že nahodiť podmienku na skrytie 3 stránok by nebolo až také namáhavé.
peto50
Profil
<?php
$title="Titulok";
$description="Popis mojej stránky";
include("a.php")
?>
<h1>Moja stránka</h1>
obsah...
<?php include("b.php") ?>
V tomto kóde už nie je čo meniť? Môžem si ho dať na každú stránku, s tým, že ho už potom nebudem musieť meniť? Alebo sa tam ešte hodí niečo zmeniť/pridať?
1Pupik1989
Profil
Nevim, jak ostatní, ale asi je to stejné. Načítám header, menu a footer. Zbylý obsah generuji z databáze. Prakticky to co máš v přispěvku nade mnou, máš hotové.
nemeja
Profil
Han:
Taky píšu, že to je pro menší weby. U větších projektů projektů předpokládám, že bude už databáze a tam se to řeší už jinak. Nicméně na web o max. 10 stránkách se to dá a je to dle mého názoru dostačující.
peto50
Profil
1Pupik1989:
Ktorý obsah mám generovať z databázy?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0