Autor Zpráva
BlueRain
Profil
Čus jak mám v PHP udělat odkaz ktery by mi pouze importoval urcitou cast do urciteho mista?
Manq
Profil
BlueRain
include? Popř. require?
BlueRain
Profil
ne, to nemyslim

$odkazy=array('novinky'=>'novinky.php')

Mám například url http://localhost/index.php?akce=novinky .
To akce=novinky zařídí, aby se do souboru index.php importoval soubor novinky.php
bukaj
Profil
BlueRain
Něco jako:

if(array_key_exists($_GET['akce'], $odkazy))
{
include $odkazy[$_GET['akce']];
}
else
{
include 'pozadovany-dokument-nebyl-nalezen.php';
}

?
BlueRain
Profil
jj to je ono
nešlo by to ale udělat z $_REQUEST ???
HGD
Profil
<?

$page=$_GET["page"];
$index="uvod.php";
if ($page) {
if (file_exists($page.".php"))
include($page.".php");
else { include $index; }
}
else {
include ($index);
}
?>
Ni7R0
Profil
HGD
1. Proč ty dvě podmínky nedáte do jedné?
if ($page && file_exists($page . ".php"))


2. Tenhle kód docela zavání možností PHP injection, řešení uvedené výše je o řád lepší.
bukaj
Profil
BlueRain
nešlo by to ale udělat z $_REQUEST ???
Šlo. Ale musíš brát v potaz, že $_REQUEST jen združuje proměnné z $_GET, $_POST a $_COOKIE. A to v jakém pořadí je pouze na nastavení v php.ini. IMHO je lepší místo $_REQUEST používat výše zmíněné tři pole.
BlueRain
Profil
Koukal jsem do všeho možného a rozebíral jsem open-source fora a sesmolil jsem todle:
<?
require_once 'setup.php'; # Nacti nastaveni
require_once 'inc/hlava.php'; # Nacti hlavu stranky

$poleAkce=array
(
'test'=>array('soubor.php','neco')
);

if (!isset ($_GET['akce'])) # Pokud nebude urcena akce
{
require_once 'hlavni.php'; # Importuje se soubor 'hlavni.php'
}

else # Pokud bude
{
require_once $poleAkce[$_GET['akce']][0]; # Nacte se soubor s poleAkci
return $poleAkce[$_GET['akce']][1]; # Vrati se hodnota z funkce
}

require_once 'inc/pata.php'; # nacti patu stranky
?>

Je to bezpečné?

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: