Autor Zpráva
josh
Profil *
Asi je to primitivni, ale mam problem s timhle:
str_replace("/", "",$_GET['pg']).".php")) $soubor = $_GET['pg'].'.php';
Mam to v souboru index.php a ty soubory na ktere chci odkazovat mam v podslozce (/obsah/) a prosim kam mam dat tu podslozku, aby to fungovalo? Zkousel jsem to asi na deseti mistech a nejak to neslo.

Jo a je nejaky rozdil mezi ./obsah/, /obsah/ a obsah/?
mikul
Profil
a zkoušel sis vypsat jaký ti to dá výsledek? obyčejně přes echo si vypiš $soubor a uvidíš.
josh
Profil *
Jo to jsem mohl zkusit... No nevim jestli je to normalni, ale ta $soubor je prazdna, coz se mi zda zvlastni...

Tady je uplny kod, ale nejak nevim, co je spatne (ten kod jsem nedelal ja, ja to zkousel jenom pres include, ale tady na foru jsem nasel to s tim str_replace):

if (isset($_GET['pg'])) {
if (is_file(str_replace("/", "",$_GET['pg']).".php")) $soubor = $_GET['pg'].'.php';
else $soubor = './data/nenalezeno.php';
}
else $soubor = './data/uvod.php';
include $soubor;
?>


Kdyz vynecham to else nenalezeno dostanu:
Warning: Failed opening '' for inclusion (include_path='.;c:\apache\php\pear') in c:\apache\htdocs\index.php
mikul
Profil
A na co chceš vlastňě odstranit "/" ?
Jakože odkud se ti tam berou? Vstup nějakéhu uživatele?
Ta funkce funguje takhle: str_replace(hledaná část, náhrada, řetězec)
takže pokud bys chtěl jen odstranit "/" z $_GET['pg'] a ulo6it to do $soubor tak
$soubor=str_replace("/", "", "$_GET['pg']");

pak tu $soubor prodlužuješ o .php:
$soubor=$soubor . '.php';
josh
Profil *
Diky mikule, abych se priznal ja jsem ten kod nepsal, ja jsem vymyslel toto:
<?
$filename = $_GET['pg'].".php";
if (file_exists("./data/$filename")) {
include "./data/$filename";}
else
{include "./data/uvod.php";}
?>

Ale pak jsem nekde nasel, ze se to tak nedela a ma tam byt str_replace. Uz jsem z toho dost zmatenej. Jediny co potrebuju vedet je kam mam dat do toho prvniho kodu podslozku /data/ nebo co mam udelat na tom druhem kodu, aby byl OK. Prosim pomozte mi. :-O

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:

0