includovani

jak se odkazuje na stranku, abych mel stranku v promenny -
tzn.
index.php?page=kniha

aby to do adresy vlozilo kniha.php a odkazalo to nä ni? dik
myslis do idex.php tohle?

<div class="navig">
| <a href="idex.php?page=kniha"></a> |
</div>

<div class="obsah">
<?php
$filename=($page.".php"); //pridani pripony
if (File_Exists ($filename)):
include($filename); //nacteni includu z promnnene
else:
include("uvod.php"); //kdyz das idex.php nebo kdyz je chyba
endif
?>
</div>
toto je pekne nebezpecny skrip.. co keby som dal
index.php?page=http://mojastranka/mojphpsubor

iba to by ta zachranilo, ak by si mal vypnute cahanie na zobrazovanie suborov z vonku..

inac je to to iste, ako by si napisal
include($_GET["page"]); .. co hadam vidi kazdy ze to nieje absolutne bezpecne.

a zvykne sa to riesit dako takto..
$files = array("index.php","lala.php","haha.php");
if(in_array($_GET["page"]){
if(file_exists($_GET["page"])){
include($_GET["page"]);
}
}

..
alebo
switch($_GET["page"]){
case 'index.php':
case 'lala.php':
case 'haha.php':
include("$_GET["page"]);
break;;
default:
include("error.php");retur;exit;
}
to ludko
... hm to mi nedoslo - ja mam zajistene cache defaultne v prvni urovni kvuli pocitadlu a formularum. Jdu zkoumat tve reseni, dik.
tak me to chodi takhle:

<?php
switch($_GET['page']){
case 'index':
case 'uvod':
case 'dalsi':
include($_GET['page'].".php");
break;
default:
include("uvod.php");
return;
exit;
}
?>

otvirá jen ty stranky co jsou zapsane jako: - case 'nazevbezkoncovky': -
- jinak vraci na uvod.php
Vnoril jsem se se svou mizernou anglinou do manualu a ono to tam bylo:

<div class="navig">
<a href="index.php">Úvod</a> |
<a href="index.php?str=2">Druhá str.</a> |
<a href="index.php?str=3">Třetí str.</a> |
<a href="index.php?str=4">Čtvrtá str.</a> |
</div>

<div class="obsah">
<?php
switch ($_GET['str']) {
case "2": $otev = 'druha.php'; break; // promenna = skutecna adresa
case "3": $otev = 'treti.php'; break;
case "4": $otev = 'ctvrta.php'; break;
default: $otev = 'prvni.php'; break; } // vychozi nebo chyba
include ($otev);
?>
</div>