Avatar billede darkstylerdk Nybegynder
25. januar 2005 - 19:38 Der er 12 kommentarer

Data fra tabel skal scrives som php

Jeg har lavet et system som henter sidernes info fra en tabel.
Siderne udskrives i hentesiden.php. Fx som hentesiden.php?id=8
Men jeg vil gerne have det til at fungere således at hentesiden.php fortolker teksten fra min tabel som php.
Således at jeg i tabellen kan lægge dette:

<form action="<?php echo $PHP_SELF; ?> " method="POST">
        Dit navn:<br>
          <input type="text" class="but" name="navn">
          <br>
          <br>
          Din email adresse:<br>
          <input type="text" class="but" name="epost">
          <br>
          <br>
          Emne:<br>
         
          <input type="text" class="but" name="emne">
          <br>
          <br>
          Besked:<br>
          <textarea wrap="on" class="but" rows="10" cols="40" name="tekst"></textarea>
          <br>
          <br>
          <input type="submit" class="button" value="Send Besked" name="send">
         
          <input type="reset" class="button" value="Slet Besked" name="reset">
          <br>
          <br>
          <font face="Verdana" size="1">
          <?php

if ($send) {
    function tilbage($meddelelse) {
        echo  "$meddelelse\n";
        echo  "<form><input type=button value=\"<<< Tilbage\" onClick=history.back()></form>\n";
        echo  "</body></html>\n";
        exit;
    }

    if (!$navn) tilbage( "<BR><BR>Du har glemt at skrive dit navn...");
    if (!$tekst) tilbage( "Du har glemt at udfylde beskedfeltet");
 
  $tekst = "$tekst ";
   
 
    mail( "mail@kristiank.net", "Mail fra Svendborg Radikale Venstres hjemmeside - Emne: $emne", $tekst, "From: $epost\nX-Mailer: http://$HTTP_HOST$REQUEST_URI");
echo  "Din mail er modtaget, og vil hurtigst muligt blive besvaret!\n";
}


?>
          </font> </div>
      </form>
        <p>

        </p>




Og det derefter ser ud som indholdet i denne side:
http://rs.kristiank.net/kontakt.php


Min hentesiden.php:

<?php

include('inc.config.php');
$query = mysql_query("SELECT * FROM sites WHERE id=".$_GET['id']."");
$row = mysql_fetch_assoc($query);
$overskrift=$row['overskrift'];
include('header.php');
echo '<h1>'.$row['overskrift'].'</h1>';
echo nl2br($row['text']);
echo '<div class="hr"></div>';



?>



<?php
include('footer.php');
?>



Hvad skal der ændres?
Avatar billede detox Nybegynder
25. januar 2005 - 19:53 #1
Du skal nok se på eval():
http://dk2.php.net/manual/en/function.eval.php

Fx:

echo '<h1>'.$row['overskrift'].'</h1>';
eval('?>' . nl2br($row['text']) . '<?php ');
echo '<div class="hr"></div>';
Avatar billede darkstylerdk Nybegynder
26. januar 2005 - 15:59 #2
<?php

include('inc.config.php');
$query = mysql_query("SELECT * FROM sites WHERE id=".$_GET['id']."");
$row = mysql_fetch_assoc($query);
$overskrift=$row['overskrift'];
include('header.php');
echo '<h1>'.$row['overskrift'].'</h1>';
echo nl2br($row['text']);
echo '<div class="hr"></div>';



?>



<?php
include('footer.php');
?>

???


Så bliver den sådan her:
http://rs.kristiank.net/hentesiden.php?id=8


Det skal blot være sådan at php fortolker data fra tabellen som ren kode
Avatar billede darkstylerdk Nybegynder
26. januar 2005 - 16:03 #3
Hey sorry... Det var med denne kode:
<?php

include('inc.config.php');
$query = mysql_query("SELECT * FROM sites WHERE id=".$_GET['id']."");
$row = mysql_fetch_assoc($query);
$overskrift=$row['overskrift'];
include('header.php');
echo '<h1>'.$row['overskrift'].'</h1>';
eval('?>' . nl2br($row['text']) . '<?php ');
echo '<div class="hr"></div>';



?>



<?php
include('footer.php');
?>
Avatar billede detox Nybegynder
26. januar 2005 - 21:33 #4
Så prøv at rette:

eval('?>' . nl2br($row['text']) . '<?php ');

til:

eval(nl2br($row['text']));
Avatar billede darkstylerdk Nybegynder
27. januar 2005 - 11:38 #5
Således:
<?php

include('inc.config.php');
$query = mysql_query("SELECT * FROM sites WHERE id=".$_GET['id']."");
$row = mysql_fetch_assoc($query);
$overskrift=$row['overskrift'];
include('header.php');
echo '<h1>'.$row['overskrift'].'</h1>';
eval(nl2br($row['text']));
echo '<div class="hr"></div>';



?>



<?php
include('footer.php');
?>

???

Så får den en masse sjove fejl ved de forskellige sider:

hentesiden.php?id=1: Parse error: syntax error, unexpected T_STRING in c:\server\www\rs\hentesiden.php(9) : eval()'d code on line 1

hentesiden.php?id=2: Parse error: syntax error, unexpected '<' in c:\server\www\rs\hentesiden.php(9) : eval()'d code on line 1
Avatar billede darkstylerdk Nybegynder
27. januar 2005 - 11:39 #6
det er ikke uploadet, men jeg tester på egen webserver...
Avatar billede detox Nybegynder
27. januar 2005 - 11:48 #7
Har du husket <?php og ?> i din kode fra tabellen?
Avatar billede darkstylerdk Nybegynder
27. januar 2005 - 11:53 #8
her er et eksempel:
<?php
$pr_side = 5;
$vis_fra = isset($_GET['visfra']) ? $_GET["visfra"] : 0;

$title = 'Artikler';


include('inc.config.php');
$query = mysql_query("SELECT id,title,image,synopsis FROM news ORDER BY id DESC LIMIT $vis_fra, $pr_side") or die(mysql_error());
while ($row = mysql_fetch_assoc($query)) {
  print '<p>';
  print empty($row['image']) ? '' : '<a href="news.display.php?id='.$row['id'].'"><img border=0 align="right" src="files/'.$row['image'] . '" class="image"></a>';

  print '<span lang="da"><b>' . $row['title'] . '</b></span><br>';
  print $row['synopsis'];
  print '<br><a href="news.display.php?id='.$row['id'].'">Læs mere</a></p>';
  print '<p>&nbsp;</p>';
}
$antal = mysql_result(mysql_query("SELECT COUNT(*) FROM news"),0);

if ($vis_fra > 0) {
    $bagud = $vis_fra - $pr_side;
    echo "<a href='$_SERVER[PHP_SELF]?visfra=$bagud'>Forrige</a> ";
}
$page = 1;
for ($start = 0; $antal > $start; $start = $start + $pr_side) {
    if($vis_fra != $page * $pr_side - $pr_side) {
        echo "<a href='$_SERVER[PHP_SELF]?visfra=$start'>$page</a> ";
    } else {
        echo $page." ";
    }
    $page++;
}
if ($vis_fra < $antal - $pr_side) {
    $naeste = $vis_fra + $pr_side;
    echo " <a href='$_SERVER[PHP_SELF]?visfra=$naeste'>Næste</a>";
}

?>
<div class="hr"></div>
<a href="news.search.php">Søg efter artikel</a>
Avatar billede detox Nybegynder
27. januar 2005 - 12:13 #9
Har du prøvet uden nl2br()?:

eval("?>" . $row['text'] . "<?php ");
Avatar billede detox Nybegynder
27. januar 2005 - 12:22 #10
Hvis nl2br() laver <br /> i php koden så dur det jo ikke.
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