Portál AbcLinuxu, 30. dubna 2025 22:15
deb http://ftp.cz.debian.org/debian jessie main contrib non-free
Taky bych rámy zavrhl (koneckonců takové středověké metody se k tomu tvému UFO moc nehodí ). Jazykové verze pak v nejjednodušim případě "vyrobíš" za pomoci jednoho switche a includování příslušného souboru, k čemuž stačí znalosti z prvních tří lekcí libovolného webově orientovaného skriptovacího jazyka (které se navíc dále uplatní při výrobě šablony stránek).
if(!include($page.'-'.$lang.'.php')) include($page.'-'.$default_lang.'.php');
Jistě, lze to samozřejmě provést mnoha způsoby, ale psát takovéhle "nebezpečné" kódy jako rady začátečníkům... Radši bych tady viděl něco jako:
switch($_GET['lang']) { case 'cz': include 'text_cz.php'; break; case 'en': include 'text_en.php'; break; default: include 'text_default.php'; }
Sice je to o trochu delší, ale za to 100% bezpečný a pro začátečníka IMHO pochopitelnější...
str_replace('/', '-', $lang);
$allow_map = array ( 'cz' => 'cz', 'en' => 'en', 'default' => 'en', ); $lang = $allow_map[ array_key_exists ($lang, $allow_map) ? $lang : 'default'];
Jistě, naše příklady jsou jen "jednoúrovňové", ale zase to nejsou "security holes by design"
$langs=array("cz","en","pl"); $pages=array("page1","page2","page3"); $defaultpage="default"; $defaultlang="en"; include (in_array($page=$_GET["page"],$pages)?$page:$defaultpage) . "_" . (in_array($lang=$_GET["lang"],$langs)?$lang:$defaultlang) . ".php";Ale asi to neni pro ne-programatora, ikdyz pochopit to snad az na oprator ?: jde i bez znalosti PHP (kazdy asi pochopi, co dela to array() a co asi tak dela in_array).
Tady mam hlavickuinclude/menu.php
tady mam menuinclude/paticka.php
tady mam patickuA nyni staci jen vytvaret stranky: index.php
include "include/hlavicka.php"; include "include/menu.php"; //tady je obsah, bla bla bla include "include/hlavicka.php";kontakt.php
include "include/hlavicka.php"; include "include/menu.php"; //tady je obsah kontaktu, bla bla bla include "include/hlavicka.php";atd.... Sice to neni uplne idealni zpusob, ale rychlou pomoc a pro tvuj ucel by to melo byt dostacujici. Nemusis se nijak zvlast ucit php. Staci se naucit, ze php kod se uzavira do <[otaznik]php ..... [otaznik]> a ze existuje funkce include, ktera umoznuje vkladat jiny soubor php soubor do sebe.
function ukazclanek () { if ((string)$_REQUEST["id"]<>'') $clanek=$_REQUEST["id"]; else $clanek="about"; if (is_file($clanek.".htm")): $nazevclanku=$clanek.".htm"; require $nazevclanku; elseif (is_file($clanek.".php")): $nazevclanku=$clanek.".php"; require $nazevclanku; else: require "notfound.php"; endif; }Určitě to tady někdo roznese na kopytech, ale pro začátek by to mohlo stačit.
else $clanek="about"na prvním řádku znamená, že pokud bude index.php volán bez parametrů, zobrazí se obsah souboru about.htm (about.php)
Když seženeš odpovídající hosting, můžeš si to napsat jako CGI v ASM pro 68k. Sice to asi neni zrovna úplně "straightforward" cesta, ale zase pak můžeš prohlásit: "Na svém webu přepínám jazyky na 16 instrukcí. Nechci se chlubit Vážení, ale kdo z Vás to má?!"
ukazclanek ();
Problem je, ze takovy kod je dosti nebezpecny. Umoznuje mi jednat poslat hodnotu ruznymi zpusoby (GET, POST, ...)Tak zrovna v tomhle případě je tato nebezpečnost celkem žádoucí. Není nic veselejšího, než naprosto zvrhle se chovající formuláš...
/usr/bin/../lib/kompozer/run-mozilla.sh: line 159: 11541 \ Neoprávněný přístup do paměti (SIGSEGV) "$prog" ${1+"$@"}
CSS - pozicovanie divov je najlepsie...Nicmene je potreba dodat, ze kdyz se clovek vrhne do DIVu a zapomene na semantiku, je z toho pekne oskliva DIVitida, ktera se tezko leci...
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.