Avatar billede jacobs12 Nybegynder
04. april 2012 - 11:17 Der er 11 kommentarer og
1 løsning

echo php i en string.

Hej.
Jeg sidder og prøver at lave et lille CMS. Jeg vil gerne have at man både kan skrive html og php i min "backend-del" Men når jeg echo siden ud, skriver den bare php delen ud som alm. string indhold.

Er der nogle der ved, hvordan man kan blande php og html så siden rendere php'en som php?

Her er mit eksempel:

$content = "Her er en <?php if($isValid){echo "Overskrift"};?>";
echo $content;

PHP siden vises indholdet sådan her:
Her er en <?php if($isValid){echo "Overskrift"};?>

Det jeg gerne vil have siden til at vise er
Her er en Overskrift

På forhånd tak :)
Avatar billede olebole Juniormester
04. april 2012 - 12:02 #1
<ole>

Det er en forkert vej at gå. CMS'et skal ikke skrive PHP ud - kun browserkode  =)

/mvh
</bole>
Avatar billede jacobs12 Nybegynder
04. april 2012 - 12:23 #2
Det er bare til lille CMS til mig selv. Så jeg hurtig kan oprette en side og lægge lidt php ind i skabelonen hvis jeg har brug for det.

Men ved du om det i det hele taget er muligt at skrive noget html/tekst/php ned i en database og hive det op igen på en anden side hvorefter php bliver afviklet som php?
Avatar billede PeaceDealer Nybegynder
04. april 2012 - 12:27 #3
Prøv det her:

if($isValid) { $a = "Overskrift" }

$content = "Her er en". $a;
echo $content;

Ser ikke helt så proffecionel ud, men tror jeg har en anden idé også. Skal bare lige teste den...
Avatar billede PeaceDealer Nybegynder
04. april 2012 - 12:32 #4
Eller du kunne også prøve noget som:

    if($isValid) {
        $content = "Her er en Oversktift";
    } else {
        $content = "Her en en anden Oversktift"
    }
   
    echo $content

Og så lige en retter til det jeg skev før.
Tilføj lige et ELSE

    if($isValid) { $a = "Overskrift"; } else { $a = ""; }
    $content  = "Her en en ". $a;
    echo $content;
Avatar billede olebole Juniormester
04. april 2012 - 12:40 #5
Det er ligemeget, hvem CMS'et er beregnet for - det er en skidt vej, du er inde på, og du vil bare skyde dig selv i foden
Avatar billede jacobs12 Nybegynder
04. april 2012 - 13:02 #6
Okay - er det ikke noget med at du ikke er interesseret i point - så PeaceDealer får pointene. men tak for hjælpen begge.
Avatar billede arne_v Ekspert
04. april 2012 - 21:58 #7
PHP har en eval funktion som kan udfoere en streng som PHP kode.

Eksempel:

<?php
$isValid = true;
$content = 'Her er en <?php if($isValid) { echo "Overskrift"; } ?>';
eval('?>' . $content . '<?php ');
?>

Bemaerk at brug af eval rejser nogle meget serioese sikkerheds problemer.

Dte vil formentligt vaere bedre at bruge et template system som f.eks. smarty.
Avatar billede jacobs12 Nybegynder
05. april 2012 - 09:53 #8
Hej Arne.
Mange tak for din kommentar, det var lige det jeg lede efter.
Avatar billede jacobs12 Nybegynder
05. april 2012 - 10:22 #9
Nu bliver jeg lidt nysgerrig, du skriver der er nogle seriøse sikkerhedsproblemer med eval();

Hvad mener du med det?

Jeg tænker, det er jo kun en string der bliver skrevet ud.
Det er kun mig selv der har mulighed for at bestemme indholdet af denne.

Er det ikke kun et problem hvis folk har mulighed for at bidrage med indhold som i et forum osv.

For der er da ikke mulighed for at hacked det. Eller tilføje kode når scriptet er kørt??
Avatar billede olebole Juniormester
05. april 2012 - 13:07 #10
Hvis siden ligger på en lokal server, der ikke er tilsluttet nettet, sker der næppe noget. Hvis det ikke er tilfældet, er selve din holdning til sikkerhed i sig selv en gigantisk sikkerhedsbrist.

Hvis et website ligger på WWW, har alle principielt samme adgang til det. Stort set alle sites har masser af potentielt svage steder, hvor man med lidt arbejde kan få lirket sig til adgang under en eller anden form.

Den, der er mest udsat, er den, der føler sig mest sikker  *o)
Avatar billede arne_v Ekspert
05. april 2012 - 15:01 #11
Hvis du henter PHP kode op af databasen og udfoerer den med eval, saa checker den jo ikke kode for om den kun indeholder lidt if og echo - hvis koden laver mysql_query og sletter hele databasen, saa udfoerer den ogsaa det. Du skal have rigtigt meget kontrol med de data der kommer ind for at det bliver sikkert. Derfor jeg foreslaar et template system.
Avatar billede Stuffa1991 Nybegynder
06. april 2012 - 15:35 #12
Hvis jeg var dig ville jeg lave det via Sub strlen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester