Autor Zpráva
DasQweras
Profil *
Zdravím.. mám problém..

Mám soubor new.php, stránku dejme tomu www.test.cz a když chci jít na stránku s new.php tak musím zadat - www.test.cz/new.php.

Ale.. já chci, aby se to zobrazovalo takhle - www.test.cz/?page=new

Jak na to? Vyzkoušel jsem hodně návodů.. ale jsem laik co php nerozumí.. Děkuji mockrát.
martin1312
Profil
tu je to fajn popisane http://firstpage.rellik.eu/?page=stranky
Majkl578
Profil
DasQweras:
Nejspolehlivější by bylo určit výčtem, které stránky jsou povolené a které ne. Nicméně při větším počtu je to nepraktické. V takový moment se hodí mít jednoduchý script, který bude dle parametru v URL načítat soubory např. z podadresáře (nazvěme ho pages) a zároveň předpokládejme, že v tomto adresáři nejsou jiné soubory, než ty, které se mají používat jako podstránky. Takový kus scriptu by pak vypadal například takto:
<?php

// Ověření existence query proměnné a zda není polem
$page = isset($_GET['page']) && is_scalar($_GET['page']) ? $_GET['page'] : NULL;

// složka s podstránkami
$dir = __DIR__ . DIRECTORY_SEPARATOR . 'pages';

// výchozí soubor - pro případ neuvedení/neexistence atd.
$file = $dir . DIRECTORY_SEPARATOR . 'default.php';

// název se skládá ze znaků a-z, 0-9, pomlčka, podtržítko a tečka
if ($page !== NULL && preg_match('~^[\w-\.]+$~', $page)) {
    // sestavení cesty k souboru
    $tmp = $dir . DIRECTORY_SEPARATOR . $page . '.php';

    // ještě ověření, zda existuje
    if (file_exists($tmp)) $file = $tmp;
}

// konečně načtení
require $file;

Toto řešení zároveň předpokládá existenci .htaccess, který zakazuje přístup zvenčí (přes prohlížeč, tj. deny from all).

Příklady správných URL:
http://example.com/?page=foo - OK, při existenci daného souboru
http://example.com/?page= - načte výchozí
http://example.com/?page[]=x - načte výchozí
http://example.com/?page=../index - načte výchozí

Něco takového by se možná hodilo i do FAQ.

[#2] martin1312:
To nepochybně. Na takové nekvalitní zdroje příště neodkazuj.
DasQweras
Profil *
Majkl578 - Děkuji moc krát.. ale asi se zeptám na totální hovadinu.. kam ten script umístit? index je v html..

martin1312 - Tak ten návod jsem nepobral
Majkl578
Profil
DasQweras:
kam ten script umístit? index je v html..
V tom případě z něj udělej index.php a toto vlož na místo, kde budou načítány dané obsahy stránek (tj. např. hlavičku a patičku stránky máš vždy stejnou, tudíž ten kód dáš mezi). Do těch jednotlivých souborů pak vždy dáš jen tu část, která není společná (ta už je v index.php).
martin1312
Profil
Majkl578:
mas pravdu nebolo to zabezpecene, kazdopadne ako zaklad je to dobre :)

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: