03. februar 2007 - 01:47Der 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?
"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..
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'); ?> ---
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..
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...
Synes godt om
Ny brugerNybegynder
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.