Avatar billede hewa Nybegynder
03. februar 2007 - 01:47 Der er 7 kommentarer og
1 løsning

nl2br og evel driller

Jeg har en database, hvor der både skal trækkes alm. tekst og php ud fra forskellige tabeller. Problemet er så, at jeg har en kode, der sørger for, at php bliver lavet til noget, der kan ses i browseren og den ser sådan ud:

    eval("?>". $row["indhold"] ."<? ");

Men hvis et linjeskift skal virke, når der ikke er andet end tekst, skal jeg bruge nl2br og denne kode virker også til linjeskiftet - men så virker viker min php ikke...

    eval("?>". nl2br($row["indhold"]) ."<? ");

Jeg har prøvet alverdens kombinationer, men intet virker - nogen gode råd?
Avatar billede fangel Nybegynder
03. februar 2007 - 11:47 #1
Først et lille citat

"If eval() is the answer, you're almost certainly asking the wrong question." -- Rasmus Lerdorf, BDFL of PHP
(BDFL = Benevolent Dictator for Life)

I kort altså - undgå brug af eval() for alt i verden!! Der er en utællelig mængde sikkerheds-problemer ved brug af eval, især af kode der kommer fra en database!

--

Hvis det du dog stadigt ikke kan se nogle problemer, så prøv at vend det om.. Få kørt eval først, derefter nl2br..
Vil nok kræve output-buffering hvis din php agter at skrive noget..

-fangel
Avatar billede hewa Nybegynder
03. februar 2007 - 13:25 #2
Tak for dit svar, fangel.

Okay, så generelt bør man ikke lægge php kode i en database... det var jeg ikke klar over - så skal jeg lige have ændret et par sider :)

Men der er vel ikke nogen problmer ved at lægge HTML i en database?

Dit svar er også point værd, så smid endelig et svar!
Avatar billede fangel Nybegynder
03. februar 2007 - 13:39 #3
HTML er fint, PHP er ikke.

Forestil dig at Hr. F. Uske får adgang til din database og gemmer noget ala
---
Nu er din server fubar, bwa ha ha ha - this is my evil laugh.
<?php delete('/en/eller/anden/vigtig/fil.ext'); ?>
---

I din database - Not wacky fun, at all, no!

-fangel
Avatar billede hewa Nybegynder
03. februar 2007 - 13:56 #4
Hermed point!

Kan jeg nå at høre fra dig, hvad jeg så skal gøre, hvis jeg smider php'en ud i en fil og vil trække det ind på dokumentet?

Jeg har prøvet med <!--#include file="filnavn.php"--> men det har ingen effekt overhovedet.
Avatar billede fangel Nybegynder
03. februar 2007 - 13:58 #5
<?php include("filnavn.php"); ?>

-fangel
Avatar billede hewa Nybegynder
03. februar 2007 - 14:04 #6
Det har desværre heller ingen effekt :(
Avatar billede fangel Nybegynder
03. februar 2007 - 14:24 #7
Hvis du har en php-fil og du i den skriver include("sti/til/fil.php"); så vil denne fil blive inkluderet..
I den fil skal du også skrive <?php i toppen, de bliver ikke automatisk fortolket som php, det skal man først - som normalt - starte..

-fangel
Avatar billede hewa Nybegynder
03. februar 2007 - 14:31 #8
Det er i en celle i databasen jeg har forsøgt at lave et include til filen med php - og det er det, der ikke virker.

Jeg har læst lidt rundt omkring og jeg har fundet ud af, one.com som jeg bruger, kører php i safemode - og dermed kan man vist ikke gøre det... gad vide hvad jeg så kan, når jeg helst skal holde min php ude af databasen...
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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