/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
sideindhold i MySQL som indeholder php
Fra : Thomas


Dato : 05-07-07 17:21

Hej NG.

Jeg er i gang med at lave mit eget lille CMS system og dertil vil jeg gerne
kunne gemme sider i en mysql database. Det går også fint så længe indholdet
kun består af HTML men jeg vil gerne have mulighed for også at have lagret
sider med php script i.

nogen der har en ide til hvordan jeg kan opnå dette?

p.t. laver jeg bare en forbindelse til databasen, henter indholdet af en
side og efterfølgende echo'er det ud hvorved php kode ikke bliver fortolket.

håber nogen kan gi mig et hint.

Mvh. Thomas



 
 
Johan Holst Nielsen (05-07-2007)
Kommentar
Fra : Johan Holst Nielsen


Dato : 05-07-07 18:08

Thomas wrote:
> Hej NG.
>
> Jeg er i gang med at lave mit eget lille CMS system og dertil vil jeg gerne
> kunne gemme sider i en mysql database. Det går også fint så længe indholdet
> kun består af HTML men jeg vil gerne have mulighed for også at have lagret
> sider med php script i.

eval()

--
Johan Holst Nielsen
Freelance PHP Developer - http://phpgeek.dk

thomas@thomasg.dk (05-07-2007)
Kommentar
Fra : thomas@thomasg.dk


Dato : 05-07-07 19:23


> eval()

jeps.. det gjorde i hvert fald at mine php script blev evalueret men
at jeg får fejl når siden bare består af html. Jeg kan dog forstå at
der er en fejl i min ide om hvordan sideindholdet kan hentes ud fra en
mySQL db.

Ideen var at sideindholdet skulle hentes ind og umiddelbart bare
tolkes som html kode. din ide var så at i det omfang jeg havde brug
for at afvikle noget php kode skulle jeg springe ind i php med en <?
php.
Lige nu gør jeg:

echo (eval(mySQLresult['sideindhold']));

nogen der kan en anden måde så indholdet bliver tolket som html per
default og kun bliver tolket af php hvis jeg laver <?php ... ?> ?

Mvh. Thomas


Jeppe Toustrup (05-07-2007)
Kommentar
Fra : Jeppe Toustrup


Dato : 05-07-07 20:00

thomas@thomasg.dk wrote:
> nogen der kan en anden måde så indholdet bliver tolket som html per
> default og kun bliver tolket af php hvis jeg laver <?php ... ?> ?
Du kan bare søge dit side indhold i gennem efter "<?php", og så kun
bruge eval funktionen hvis dette er tilfældet. F.eks:

<?php
   if(preg_match("<?php", mySQLresult['sideindhold']))
   {
      echo(eval(mySQLresult['sideindhold']));
   } else {
      echo(mySQLresult['sideindhold']);
   }
?>

--
Venlig hilsen
Jeppe Toustrup

thomas@thomasg.dk (05-07-2007)
Kommentar
Fra : thomas@thomasg.dk


Dato : 05-07-07 20:13


> Du kan bare søge dit side indhold i gennem efter "<?php", og så kun
> bruge eval funktionen hvis dette er tilfældet. F.eks:

der er ikk een der kunne komme på en anden fremgangsmåde så en side
både kunne indholde html og php men hvor alt php er indkapslet af <?
php ... ?>


Johan Holst Nielsen (05-07-2007)
Kommentar
Fra : Johan Holst Nielsen


Dato : 05-07-07 20:55

thomas@thomasg.dk wrote:
>> Du kan bare søge dit side indhold i gennem efter "<?php", og så kun
>> bruge eval funktionen hvis dette er tilfældet. F.eks:
>
> der er ikk een der kunne komme på en anden fremgangsmåde så en side
> både kunne indholde html og php men hvor alt php er indkapslet af <?
> php ... ?>

jo, kan du sagnes. Blot sørg for at udskrive det hver for sig... således
du blot echo'er HTML'en mens alt mellem <?php og ?> smides igennem eval
inden de udskrives.

Dog vil jeg kraftig anbefale dig at overveje hvad du gør. At køre eval
på mere eller mindre tilfældig information (f.eks. i et CMS system eller
lign) er et sikkerhedshul på størrelse med Universet.

--
Johan Holst Nielsen
Freelance PHP Developer - http://phpgeek.dk

Martin (06-07-2007)
Kommentar
Fra : Martin


Dato : 06-07-07 13:09

thomas@thomasg.dk wrote:
>> Du kan bare søge dit side indhold i gennem efter "<?php", og så kun
>> bruge eval funktionen hvis dette er tilfældet. F.eks:
>
> der er ikk een der kunne komme på en anden fremgangsmåde så en side
> både kunne indholde html og php men hvor alt php er indkapslet af <?
> php ... ?>
>

Har du en side i databasen hvor der fx. står

HTML....
<?php
echo 'lala';
?>
HTML...

Så skal du faktisk starte din eval med

eval('?>'.$dbindhold.'<?php');


Da du ellers vil få en php error... Forstil dig det vil komme til at se
sådan her ud

<?php
// Her er din side der kalder eval
// Hent DBindhold...

eval($dbindhold);

?>

Så vil din side faktisk komme til at se sådan her ud

<?php
// Her er din side der kalder eval
// Hent DBindhold...

HTML....
<?php
echo 'lala';
?>
HTML...

?>

Også vil du få en fejl med at PHP allerede er startet :)

Læs iøvrigt brugerkommentarerne til eval
fx. http://dk.php.net/manual/en/function.eval.php#70409

Det er ihvertfald mine erfaringer med eval - og de er ikke gode, for det
første er det et MEGET sikkerheds problem overhovedet at bruge eval på
noget php kode man ikke kender til mindste detalje (som man ikke gør i
et CMS).

Det eneste "rigtige" er at lave det hele modulopbygget, også lave
moduler til hver eneste funktion.

thomas@thomasg.dk (07-07-2007)
Kommentar
Fra : thomas@thomasg.dk


Dato : 07-07-07 09:33

On 6 Jul., 14:08, Martin <m...@SPAMscandesigns.dk> wrote:
> tho...@thomasg.dk wrote:
> >> Du kan bare søge dit side indhold i gennem efter "<?php", og så kun
> >> bruge eval funktionen hvis dette er tilfældet. F.eks:
>
> > der er ikk een der kunne komme på en anden fremgangsmåde så en side
> > både kunne indholde html og php men hvor alt php er indkapslet af <?
> > php ... ?>
>
> Har du en side i databasen hvor der fx. står
>
> HTML....
> <?php
> echo 'lala';
> ?>
> HTML...
>
> Så skal du faktisk starte din eval med
>
> eval('?>'.$dbindhold.'<?php');
>
> Da du ellers vil få en php error... Forstil dig det vil komme til at se
> sådan her ud
>
> <?php
> // Her er din side der kalder eval
> // Hent DBindhold...
>
> eval($dbindhold);
>
> ?>
>
> Så vil din side faktisk komme til at se sådan her ud
>
> <?php
> // Her er din side der kalder eval
> // Hent DBindhold...
>
> HTML....
> <?php
> echo 'lala';
> ?>
> HTML...
>
> ?>
>
> Også vil du få en fejl med at PHP allerede er startet :)
>
> Læs iøvrigt brugerkommentarerne til eval
> fx.http://dk.php.net/manual/en/function.eval.php#70409
>
> Det er ihvertfald mine erfaringer med eval - og de er ikke gode, for det
> første er det et MEGET sikkerheds problem overhovedet at bruge eval på
> noget php kode man ikke kender til mindste detalje (som man ikke gør i
> et CMS).
>
> Det eneste "rigtige" er at lave det hele modulopbygget, også lave
> moduler til hver eneste funktion.

okay. Kan godt se hvad i mener. Men forstår ikke helt dit
løsningsforslag... altså det der med at modulopbygge det..

Men rigtig mange tak for hjælpåen indtil videre.

Mvh. Thomas


Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste