php kód ve výpisu z db neparsuje
4 příspěvky
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
Dobrý den, zkusil jsem podobné téma pohledat, ale marně, tak se opět obracím sem :-) Tentokrát problém spočívá v tom, že když se mi obsah do stránky načítá z databáze a ta obsahuje php kód, tak se mi doputuje do prohlížeče jako text (tedy na serveru už neproběhne parserem), takže v tomto případě se zobrazí prázdné pole v místě, kde měl skript proběhnout. ve zdrojovém kódu prohlížeče je pak původní znění skriptu. jinými slovy běžně je v db uložen přímo html kód, ale v tomto případě jsem musel použít include. obsah načteného řádku z db: <?php include ("formulare/prihlaska_tabor.php"); ?>
-
Jak jsi už psal. Z DB se php kód vytahuje jako text a ne jako skript. Proto interpret tento kus textu bere jako řetězec a také sním i pracuje. Pokud je potřeba řetězec zparsovat, pak se k tomu použije funkce eval(). Ovšem při použití této funkce bych důrazně upozornil na jeho sílu, která může představovat i vážné bezpečnostní riziko. Zvláště ve spojení s databázi. Pokud se do eval() dostane něco, co ty nemůžeš ovlivnit, pak to může udělat pěknou paseku.
-
Parsovat PHP kód z databáze je nesmysl. Je to ukázka špatně navržené aplikace. I kdyby to fungovalo, bylo by to za cenu zvýšené zátěže serveru a celkového zpomalení.
-
A myslíte že by bylo v praxi použitelné, pokud bych např. přidal do tabulky v db sloupec např. s hodnotou 0 a 1 (který bych mohl ovlivnit pouze já - tedy default 0 a nebo já ručně u jednoho nebo dvou případů 1) a ve výpisu z db bych nastavil podmínku, že když je 0, tak se vypíše klasicky echo ... a pokud 1, tak se použije eval? Je to opravdu něco s čím jsem původně nepočítal a nechce se mi to předělávat celé. Jinak zápis do databáze s obsahem webu lze (za předpokladu, že to někdo nenabourá) pouze přes zaheslovaného admina.