Avatar billede mulles.tk Nybegynder
17. januar 2004 - 23:03 Der er 21 kommentarer og
1 løsning

Data fra database i PHP?

Hmm, ved ikke om jeg kan få forklaret mit spørgsmål ordentligt, men jeg prøver.

Jeg har lavet en side, hvor alt indhold ligger gemt i en database. Det meste af det er bare alm. html, men enkelte ting som fx kontakt formularen indeholder dele af php. Når jeg henter disse sider så læser den ikke <?php ?> og laver dem om til html, men skriver dem bare som de er! Hvordan kan dette ændres?

<---- content.php ---->
<body>
<p>
<?php
    $page = "$_GET[show]";

    $language = "$_GET[language]";

        $query = mysql_query("SELECT * FROM indhold WHERE page='$page' AND language='$language'");
        while ($row = mysql_fetch_array($query)) {
if($row['editable'] == 'no'){
        echo $row['text'];
}else{
        echo nl2br($row['text']);
}
        }
?>
</p>
</body>
<---- SLUT ---->

... kontakt formularen har "editable" sat til "no"!

Nogen der kan hjælpe?
Avatar billede krydset Nybegynder
17. januar 2004 - 23:07 #1
Som jeg forstår det prøv det her ved ikke om det er rigtigt eller om det er det du mener

<body>
<p>
<?php
    $page = "$_GET[show]";

    $language = "$_GET[language]";

        $query = mysql_query("SELECT * FROM indhold WHERE page='$page' AND language='$language'");
        while ($row = mysql_fetch_array($query)) {
if($row['editable'] == 'no'){
        echo $row['text'];
}else{
        echo nl2br(eval($row['text']));
}
        }
?>
</p>
</body>
Avatar billede phpwiz Nybegynder
17. januar 2004 - 23:09 #2
okay, du skal huske at dine filer skal hedde .php og ikke .html
Avatar billede Slettet bruger
17. januar 2004 - 23:09 #3
Er du sikker på at serveren understøtter PHP?

Hvis det er på den hjemmesideplads, man får med sit internetabonnement hos en normal internetudbyder, så er der normalt ikke adgang til noget som helst serverside kode.
Avatar billede Slettet bruger
17. januar 2004 - 23:11 #4
ramlev.dk: Det ser ud til hans fil hedder content.php
Avatar billede krydset Nybegynder
17. januar 2004 - 23:11 #5
Som jeg forstår det gemmer han en stump php kode i db (ved ik om det er rigtigt forstået) Men i det tilfælde er det ikke eval() så man bruger?
Avatar billede phpwiz Nybegynder
17. januar 2004 - 23:14 #6
som jeg forstår det han skriver så udskriver den hele hans php kode i browseren istedet for at parse den...

sandbox : hi hi ja det gør det vist.

hvis der ikke er installeret php på serveren, så kan webserveren heller ikke forstå php extension.
Avatar billede Slettet bruger
17. januar 2004 - 23:19 #7
Krydset: Det er nok rigtigt. Så giver spørgsmålet jo lige pludselig mere mening. Din løsning til det er vist bare ikke helt god. Øjeblik, så kommer der en herfra.
Avatar billede Slettet bruger
17. januar 2004 - 23:24 #8
<body>
<p>
<?php
    $page = "$_GET[show]";

    $language = "$_GET[language]";

        $query = mysql_query("SELECT * FROM indhold WHERE page='$page' AND language='$language'");
        while ($row = mysql_fetch_array($query)) {
if($row['editable'] == 'no'){
        eval (' ?' . '>' . $string . '<' . '?php ');
        //echo $row['text'];
}else{
        echo nl2br($row['text']);
}
        }
?>
</p>
</body>
Avatar billede Slettet bruger
17. januar 2004 - 23:26 #9
Mit svar tager alle med editable=no og opfører sig nærmest, som hvis den havde inkluderet dem fra en fil.
Avatar billede krydset Nybegynder
17. januar 2004 - 23:27 #10
okay, ja den er mere avanceret ;)

Man lære altid, men lad os nu høre hvad han selv siger ;)
Avatar billede Slettet bruger
17. januar 2004 - 23:46 #11
Krydset: Du havde pillet ved den forkerte del af if-en, så selv hvis din metode havde virket, havde den været forkert.

Derudover tager din ikke højde for, at eval() starter i PHP-mode, hvor en normal fil starter i PASSTHRU-mode.
Avatar billede mulles.tk Nybegynder
18. januar 2004 - 20:37 #12
Så er jeg tilbage :)

Sandbox - Det du har lavet læser og kører den del af dataerne der er php. Men den laver rod i min mailform, se her:

<form method="POST" action="content.php(21) : eval()'d code">

koden er rigtig:

<form method="POST" action="<?php echo basename(__FILE__); ?>">

I koden du har lavet, går jeg udfra at $string er $row['text'], og at //echo $row['text']; lige så godt kan slettes?
Avatar billede Slettet bruger
18. januar 2004 - 20:49 #13
I stedet for basename(__FILE__) kan du prøve at bruge $_SERVER['PHP_SELF']
Avatar billede Slettet bruger
18. januar 2004 - 20:52 #14
Og ellers, hvis en form bare skal returnere til samme side, er det ganske korrekt at skrive action="" - man behøver slet ikke skrive noget i attributten
Avatar billede mulles.tk Nybegynder
18. januar 2004 - 21:14 #15
tror snart at jeg får det til at virke, men bare lige en ting til.

Hvordan får jeg dette til at blive rigtigt:

<?php echo $_SERVER['PHP_SELF'];?language=$language&show=$page?>">

...det jeg tænker på er hvordan jeg får koblet ?language=$language&show=$page på $_SERVER['PHP_SELF']; ???
Avatar billede mulles.tk Nybegynder
18. januar 2004 - 21:17 #16
hov havde ikke lige set dit sidste indlæg. Prøver det lige!
Avatar billede mulles.tk Nybegynder
18. januar 2004 - 21:20 #17
Kanont!!! Det virker...
Avatar billede Slettet bruger
18. januar 2004 - 21:25 #18
Tak for point.

Hvis man har brug for at koble en echo med resten af en url, kan man gøre sådan:

<a href="<?php echo $_SERVER['PHP_SELF'];?>?language=$language&show=$page">
Avatar billede mulles.tk Nybegynder
18. januar 2004 - 21:54 #19
...hmm men så læser den vel ikke $language og $page som php, gør den? :)
Avatar billede Slettet bruger
18. januar 2004 - 22:49 #20
Ups. Nej naturligvis gør den ikke det.

Denne er nok bedre:

<a href="<?php echo $_SERVER['PHP_SELF'] . "?language=$language&show=$page"; ?>">
Avatar billede mulles.tk Nybegynder
19. januar 2004 - 16:35 #21
hehe okay... Det var nemlig det med . "" jeg var i tvivl om :) -tak tak!
Avatar billede Slettet bruger
19. januar 2004 - 23:28 #22
Tegnet . er for strenge hvad + er for tal. Grunden til, at der er brug for to forskellige tegn, er, at tal godt kan behandles som strenge og strenge godt kan behandles som tal.

$to=2;
$tre="3";

$fem=$to + $tre;
$to_og_tredive=$tre . $to
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