IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Skladanie stránok

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
petericek
Člen
Avatar
petericek:22.4.2018 14:59

Ahoj, som začiatočník, pri tvorbe stránok som použil tento kód, ktorý som tu našiel: Skladaní stránek

if (isset($_GET['stranka']))
        $stranka = $_GET['stranka'];
else
        $stranka = 'domu';
if (preg_match('/^[a-z0-9]+$/', $stranka))
{
        $vlozeno = include('podstranky/' . $stranka . '.php');
        if (!$vlozeno)
                echo('Podstránka nenalezena');
}
else
        echo('Neplatný parametr.');

Kód úspešne funguje, super a vďaka autorovi. Chcel by som sa opýtať, či by sa dalo nejako riešiť toto: v adresári napr. html by som mal ešte nejaké podadresáre a z nich načítavať stránky. skúšal som tam vložiť svoju cestu aj s podadresárom, no hlási chybu: neplatný parameter. Ďakujem.

 
Odpovědět
22.4.2018 14:59
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:23.4.2018 11:13

http://php.net/….include.php
Priklady zapisu include viz dokumentace.

'hlási chybu: neplatný parameter'
Tu chybu hlasi i se jmenem souboru a radkem, na kterem nastala. Coz pomaha identifikovat problem. Takhle lze jen tipovat.
Ups, ok, to hlasi ten kod. Php ma jeste vlastni chyby. Povoluje se to zapisem na zacatku souboru
@ini_set('error_re­porting', E_ALL);
@ini_set("dis­play_errors", "1");
error_reportin­g(E_ALL);

Ok, takze zpet. Pokud to hlasi neplatny parametr a je to text z radku

echo('Neplatný parametr.'); // zmen na
echo('Neplatný parametr.XXX');

Jestli to pak vypise ty XXX, tak to znamena, ze text v promenne $stranka neprosel pres kontrolu

if (preg_match('/^[a-z0-9]+$/', $stranka))

Takze doporucuji si ten text vypsat, napriklad pres

var_dump($stranka);

Pravdepodobne tam mas nepovolene znaky. Kontrolni reg. vyraz dovoluje jen znaky a-z0-9. Pokud tam chces nejaky dalsi znak, tak staci pridat do zavorky.
^[a-z0-9]+$
^[a-z0-9_]+$ - podtrzitko
^[a-z0-9_A-Z]+$ - podtrzitko + velka pismena
^[a-z0-9-]+$ - minus, ale mozna s lomitkem nebo dvema, jedna z tech tri moznosti by mela fungovat
^[a-z0-9\-]+$
^[a-z0-9\\-]+$

Je to regularni vyraz, ktery hleda text odpovidajici podmince.
^...$ ohranicuje zacatek a konec retezce
a-z je abcde...z (pozor, bez diakritiky)
0-9 je 012...9
[] je jeden ze znaku v zavorce
+ opakovani 1 az nekonecno
Cili, ten vyraz kontroluje, zda text od zacatku az do konce obrahuje jen a pouze znaky a-z nebo 0-9. Minimalne tam musi byt 1 takovy znak.
Pokud ti ten reg. vyraz nevyhovuje, mohlo by byl lepsi pouzit konkretni seznam stranek.

$page_list = array(
"home",
"stranka1",
"stranka2"
);
if (in_array($stranka, $page_list)) {...}
Editováno 23.4.2018 11:14
 
Nahoru Odpovědět
23.4.2018 11:13
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.