Autor Zpráva
gygabyte
Profil *
Mám obsah stránek uložený v db a načítám hopodle potřeby, když ale chci načíst php script tak se neprovede, ale jenom se vypíše.
Co mám dělat, jde to vůbec?
keeehi
Profil
přečti si o funkci
eval();

!! pozor na bezpečnost !!
gygabyte
Profil *
<?php
  if(isset($lokace)) {
  db_connect();
  $dotaz = "SELECT obsah FROM stranky WHERE nazev='$lokace'";
  $res = mysql_query($dotaz);
  while($z = mysql_fetch_row($res)) {
   foreach($z as $obsah);
   }
 }
 else {
  db_connect();
  $dotaz = "SELECT obsah FROM stranky WHERE nazev='index'";
  $res = mysql_query($dotaz);
  while($z = mysql_fetch_row($res)) {
    foreach($z as $obsah);
  }
 }
?>

upravil by jsi mi to aby to fungovalo? tam v tom se nevyznám, moc by mi to pomohlo
keeehi
Profil
nejspíše takto:
<?php
  if(empty($lokace))
  $lokace="index";

  db_connect();
  $dotaz = "SELECT obsah FROM stranky WHERE nazev='".$lokace."' LIMIT 1;";
  $res = mysql_query($dotaz);
  $z = mysql_fetch_row($res);
  eval($z[0]);
?>
gygabyte
Profil *
Bohužel to mi nefunguje, akorát ještě navíc vypíše chybu
Parse error: syntax error, unexpected $end in blablabla\blablalba\index.php(18) : eval()'d code on line 1
a
Parse error: syntax error, unexpected '<' in blablabla\blablabla\index.php(18) : eval()'d code on line 1
Nemá někdo ještě nějaké jiné řešení?
AM_
Profil
Eval spouští PHP skript, ne HTML prokládané PHP!
Můžeš si ten skript vytáhnout z databáze, uložit do dočasného souboru a pak requirovat. Ale je to hrozná čuňárna - lepší bude vymyslet čistější systém, který nebude tahat skripty z databáze, to je opravdu libůstka, s tím jsem se ještě nesetkal :)
gygabyte
Profil *
Čuňárny já rád :-D
No... skusím to udělat jinak
blizz_boz
Profil
AM_

l spouští PHP skript, ne HTML prokládané PHP! ....

blbost. spusta aj html prekladane php satci pouzit malu fintu:

eval("?>$code");
:D
AM_
Profil
blizz_boz
OK, to jsem netušil, nuže ale řešení je to stejně otřesné :)

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: