Zdravim. Mam preblem so spustenim uvodu na jednej web stranke. Hlavna stranka aj podstranky su v suboroch s *.php v ktorych je aj klasika HTML. Stranky sami o sebe funguje korektne. Pri spusteni index.php nabehne hlavna stranka, no a po kliknuti na odkaz podstranky sa menia iba tieto podstranky s tym, ze hlavna stranka zostava (vyriesil som po prikazom include("index.php"); v zdrojaku podstranky). Toto riesenie sa ukazalo ako nie velmi vyhodne, pretoze nechcem mat pri prvom spusteni index.php prazdny stred stranky. Chcel by som tam supnut nejaky uvod.php, no problem je v tom, ze ked uvod.php zakomponujem do index.php (priamo, alebo prikazom include), pri spusteni napr. fotky.php sa uvod.php logicky nacita tiez. Zlozite jak hovado :-D . Dalsi problem mam s diakritikou. Nefunguje makcene atd. skusal som aj
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
aj <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2">
no nic. Ak to niekto docita az sem, budem sa tesit na odpoved ;) .
sudo apt-get remove windows
cely text musis mat v utf-8 ak tam das to kodovanie utf-8 ak mas text napisany vo windows-1250 a das kodovanie utf-8 tak ti to na 99% nepojde,cize aj text musis mat v tom kodovani ake uvadzas...
include mozes nahradit s iframe :-]
<?php
header('Content-Type: text/html; charset=utf-8');
?>
teda pokialpouzivas kodovanie utf-8 ak ine tak zmen na ine
a k tomu nacitaniu niakej stranky na zaciatok to sprav cez podmienky ze co sa ma nacitat a ak nic tak nech sa nacita uvod.php
<?php
No problem. Pri spusteni index.php sa defaultne spusti aj linux.php, lenže po klknuti napr. na fotky.php sa linux.php a fotky.php prekryvaju. Je to sposobene tym, ze v subore fotky.php je prikaz include("index.php"); (no a tu je pes zakopany), to preto, aby sa mi po stranach zobrazilo menu atd. Vznika tu klasicky cyklus :( . Zobraz nieco aj s niecim, co obsahuje nieco, a tak dokolecka :).$page=$_GET['page'];
switch ($page) {
case 'uvod':
if(is_readable('uvod.php')) include 'uvod.php';
break;
case 'linux':
if(is_readable('linux.php')) include 'linux.php';
break;
case 'fotky':
if(is_readable('fotky.php')) include 'fotky.php';
break;
default: include_once "linux.php";
}
?>
< h 1 >ahoyte< / h 1 >
< p >mejn pejdz< / p >
A ono to automaticky includne do toho divu stred a je to tym vyriesene
switch ($page) {
case 'uvod':
if(is_readable('uvod.php')) include_once('uvod.php');
break;
case 'linux':
if(is_readable('linux.php')) include_once('linux.php');
break;
case 'fotky':
if(is_readable('fotky.php')) include_once('fotky.php');
break;
default: if($_SERVER['SCRIPT_NAME'] == '/index.php') include_once "linux.php";
}
a odporucam pri vsetkom co chces iba raz vkladat pouzivat "include_once" miesto "include" a este lepsie aj so zatvorkami ;-)
a dany skript pri vacsom mnozstve stranok by nemusel byt dost prehladny, tak mozes skusit nieco taketo.. a este som zabudol, ze pri poziadavke na stranku "/linux.php" by ti to zobrazilo linux.php 2x, takze ju staci vynechat z "allowed_pages", kedze ju zobrazuje ak sa nenajde nic ine..
$page = $_GET['page'];
$allowed_pages = Array("uvod", "fotky");
if(in_array($page, $allow_pages) && is_readable("$page.php"))
include_once("$page.php");
elseif($_SERVER['SCRIPT_NAME'] == '/index.php')
include_once("linux.php");
ale to nepomoze ak budes zo skriptu "uvod.php" volat "index.php", kedze "page" zistujes z $_GET['page']. Osobne by som ti odporucil pouzivat iba jeden sposob zapisu URL, cize bud cez "?page=nieco", alebo "/nieco.php"
nebudes mat problemy s vnorenym vkladanim a ani dalsie, ktore by ti vznikli v neskorsom obdobi. radsej sa pre jeden z nich rozhodnit hned.
Skus si este raz pozriet vsetky, ale uplne vsetky subory co sa spracovavaju, ci su aj skutocne ulozene ako UTF-8 (snad pouzivas, ak nie, odporucam), staci niekedy aj jeden, aby rozhodil celu stranku.
Zaujimave je to, ze ak v menu kliknem na nejaky odkaz, nacita sa napr. fotky.pfp, tak tento subor zobrazi korektne.