[php/mysql] bb codes ophalen uit database

Status
Niet open voor verdere reacties.

Rockybag

Gebruiker
Lid geworden
12 apr 2008
Berichten
27
Hallo,

Ik heb het volgende onderstaand script maar ik loop tegen een probleem aan. Je kan met het script pagina's bewerken (het is een script van een cms systeem). Als je bb codes invoegt weergeeft hij die netjes. Echter als je de pagina weer wilt bewerken laat hij alleen de tekst zien en niet de bb codes/html. Je moet dan eerst al die code's weer invoeren.
Ik hoop dat iemand mij kan helpen met het probleem. Ik denk dat die codes uit de database gehaalt moeten worden.

groeten

script:
PHP:
<?php
session_start();
?>
<head>
<script type="text/javascript" src="bbeditor/ed.js"></script>  
</head>
<?php
include 'connect.inc.php';

include 'includes.php';

?>
<?php
if($_SESSION['rank'] == "3") {
$ddp = $_GET['id'];
if($ddp == "hp") {
if(isset($_POST['submit'])) {
$status = $_POST['status'];
$tekst = $_POST['tekst'];

// Enters maken
$tekst = nl2br($tekst);
// Links maken
$tekst = preg_replace("_\[url]http://(.*)\[/url\]_si", '<a href="$1" target="_blank">$1</a>', $tekst);
$tekst = preg_replace("_\[url](.*)\[/url\]_si", '<a href="http://$1" target="_blank">$1</a>', $tekst);
$tekst = preg_replace("_\[url=http://(.*)\](.*?)\[/url\]_si", '<a href="$1" target="_blank">$2</a>', $tekst);
$tekst = preg_replace("_\[url=(.*)\](.*?)\[/url\]_si", '<a href="http://$1" target="_blank">$2</a>', $tekst);
$tekst = preg_replace("_\[email](.*)\[/email\]_si", '<a href="mailto://$1">$1</a>', $tekst);
$tekst = preg_replace("_\[email=(.*)\](.*?)\[/email\]_si", '<a href="mailto:$1">$2</a>', $tekst);
// Afbeeldingen
$tekst = preg_replace("_\[img](.*)\[/img\]_si", '<img src="$1" alt="Afbeelding" />', $tekst);
// Automatisch links maken
$tekst = preg_replace('#(^|[ \n\r\t])([a-z0-9]{1,6}://([a-z0-9\-]{1,}(\.?)){1,}[a-z]{2,5}(:[0-9]{2,5}){0,1}((\/|~|\#|\?|=|&amp;|&|\+){1}[a-z0-9\-._%]{0,}){0,})#si', '\\1<a href="\\2">\\2</a>', $tekst);
$tekst = preg_replace('#(^|[ \n\r\t])((www\.){1}([a-z0-9\-]{1,}(\.?)){1,}[a-z]{2,5}(:[0-9]{2,5}){0,1}((\/|~|\#|\?|=|&amp;|&|\+){1}[a-z0-9\-._%]{0,}){0,})#si', '\\1<a href="http://\\2">\\2</a>', $tekst);
$tekst = preg_replace('#(^|[ \n\r\t])(([a-z0-9\-_]{1,}(\.?)){1,}@([a-z0-9\-]{1,}(\.?)){1,}[a-z]{2,5})#si', '\\1<a href="mailto:\\2">\\2</a>', $tekst);
// Youtube video
$tekst = preg_replace('_\[youtube\].*?(v=|v/)(.+?)(&.*?|/.*?)?\[/youtube\]_is', '[youtube]$2[/youtube]', $tekst);
$tekst = preg_replace('_\[youtube\]([a-z0-9-]+?)\[/youtube\]_is', '<object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/$1"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/$1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object>', $tekst);
// Uitlijnen
$tekst = preg_replace("_\[left](.*)\[/left\]_si", '<div align="left">$1</div>', $tekst);
$tekst = preg_replace("_\[right](.*)\[/right\]_si", '<div align="right" style="margin-right: 5px;">$1</div>', $tekst);
$tekst = preg_replace("_\[center](.*)\[/center\]_si", '<div align="center">$1</div>', $tekst);
// Kleuren
$tekst = preg_replace("_\[color=(.*)\](.*?)\[/color\]_si", '<span style="color: $1">$2</span>', $tekst);
// Tekstgrootte
$tekst = preg_replace("_\[size=(.*)\](.*?)\[/size\]_si", '<span style="font-size: $1">$2</span>', $tekst);
$tekst = preg_replace("_\[tt](.*)\[/tt\]_si", '<tt>$1</tt>', $tekst);
$tekst = preg_replace("_\[big](.*)\[/big\]_si", '<big>$1</big>', $tekst);
$tekst = preg_replace("_\[small](.*)\[/small\]_si", '<small>$1</small>', $tekst);
// Vetgedrukt
$tekst = preg_replace("_\[b\](.*?)\[/b\]_si", '<b>$1</b>', $tekst);
// Cursief
$tekst = preg_replace("_\[i\](.*?)\[/i\]_si", '<i>$1</i>', $tekst);
// Onderstrepen
$tekst = preg_replace("_\[u\](.*?)\[/u\]_si", '<u>$1</u>', $tekst);
// Doorstrepen
$tekst = preg_replace("_\[s\](.*?)\[/s\]_si", '<s>$1</s>', $tekst);
// Knipperen
$tekst = preg_replace("_\[blink\](.*?)\[/blink\]_si", '<blink>$1</blink>', $tekst);
// Superscript
$tekst = preg_replace("_\[sup\](.*?)\[/sup\]_si", '<sup>$1</sup>', $tekst);
// Subscript
$tekst = preg_replace("_\[sub\](.*?)\[/sub\]_si", '<sub>$1</sub>', $tekst);
// All caps
$tekst = preg_replace("_\[ac\](.*?)\[/ac\]_si", '<span style="text-transform:uppercase">$1</span>', $tekst);
// Small caps
$tekst = preg_replace("_\[sc\](.*?)\[/sc\]_si", '<span style="text-transform:lowercase">$1</span>', $tekst);
// Marquee, standaard "scroll", andere opties: "slide" & "alternate"
$tekst = preg_replace("_\[slide\](.*?)\[/slide\]_si", '<marquee>$1</marquee>', $tekst);
$tekst = preg_replace("_\[slide=(.*?)\](.*?)\[/slide\]_si", '<marquee behavior="$1">$2</marquee>', $tekst);
// Smilies
$tekst = str_replace(":)"," <img src=\"images/smilies/lach.gif\" alt=\"lach\" />", $tekst);
// Quotes
while(preg_match("((\[quote=(.+?)\](.+?)\[\/quote\])|(\[quote\](.+?)\[\/quote]))is", $tekst)) {
  $tekst = preg_replace("(\[quote=(.+?)\](.+?)\[\/quote\])is",'<fieldset><legend> <b>$1 schreef:</b> </legend><br />$2<br /></fieldset><br />' ,$tekst);
  $tekst = preg_replace("(\[quote\](.+?)\[\/quote])is",'<fieldset><legend> <b>Quote</b> </legend><br />$1<br /></fieldset><br />' ,$tekst); 
}
$naam = $_POST['naam'];
$dde = $_GET['id'];

mysql_query("update instellingen set hptekst = '$tekst' ") or die(mysql_error());

echo "veranderd! <a href=index.php>Ga terug</a>";
} else { 
$dd = $_GET['id'];
$sqlddv = mysql_query("SELECT * FROM `instellingen`");
$vd = mysql_fetch_assoc($sqlddv);

$kb = $vd['naam'];
$kb = htmlspecialchars_decode($kb);
$kb = strip_tags($kb);
$lb = $vd['hptekst'];
$lb = htmlspecialchars_decode($lb);
$lb = strip_tags($lb);

?>
<FORM action="#" method="post">         
   
   Pagina Tekst:<br>         
   <script>edToolbar('mytxtarea'); </script>
    <textarea name="tekst" id="mytxtarea" class="ed" rows="5"><?php echo $lb; ?></textarea>De tekst in de pagina. 
   <BR>
<br>  
<A HREF="javascript:popUp('ubbcode.php')">Code's</A><br> <b>Let op:</b>Werkt alleen in de pagina tekst!<br> <br>
   <input type="submit" value="Plaats!" name="submit">         
   </form><?php } }elseif($ddp == "up")
 {
if(isset($_POST['submit'])) {
$status = $_POST['status'];
$tekst = $_POST['tekst'];

// Enters maken
$tekst = nl2br($tekst);
// Links maken
$tekst = preg_replace("_\[url]http://(.*)\[/url\]_si", '<a href="$1" target="_blank">$1</a>', $tekst);
$tekst = preg_replace("_\[url](.*)\[/url\]_si", '<a href="http://$1" target="_blank">$1</a>', $tekst);
$tekst = preg_replace("_\[url=http://(.*)\](.*?)\[/url\]_si", '<a href="$1" target="_blank">$2</a>', $tekst);
$tekst = preg_replace("_\[url=(.*)\](.*?)\[/url\]_si", '<a href="http://$1" target="_blank">$2</a>', $tekst);
$tekst = preg_replace("_\[email](.*)\[/email\]_si", '<a href="mailto://$1">$1</a>', $tekst);
$tekst = preg_replace("_\[email=(.*)\](.*?)\[/email\]_si", '<a href="mailto:$1">$2</a>', $tekst);
// Afbeeldingen
$tekst = preg_replace("_\[img](.*)\[/img\]_si", '<img src="$1" alt="Afbeelding" />', $tekst);
// Automatisch links maken
$tekst = preg_replace('#(^|[ \n\r\t])([a-z0-9]{1,6}://([a-z0-9\-]{1,}(\.?)){1,}[a-z]{2,5}(:[0-9]{2,5}){0,1}((\/|~|\#|\?|=|&amp;|&|\+){1}[a-z0-9\-._%]{0,}){0,})#si', '\\1<a href="\\2">\\2</a>', $tekst);
$tekst = preg_replace('#(^|[ \n\r\t])((www\.){1}([a-z0-9\-]{1,}(\.?)){1,}[a-z]{2,5}(:[0-9]{2,5}){0,1}((\/|~|\#|\?|=|&amp;|&|\+){1}[a-z0-9\-._%]{0,}){0,})#si', '\\1<a href="http://\\2">\\2</a>', $tekst);
$tekst = preg_replace('#(^|[ \n\r\t])(([a-z0-9\-_]{1,}(\.?)){1,}@([a-z0-9\-]{1,}(\.?)){1,}[a-z]{2,5})#si', '\\1<a href="mailto:\\2">\\2</a>', $tekst);
// Youtube video
$tekst = preg_replace('_\[youtube\].*?(v=|v/)(.+?)(&.*?|/.*?)?\[/youtube\]_is', '[youtube]$2[/youtube]', $tekst);
$tekst = preg_replace('_\[youtube\]([a-z0-9-]+?)\[/youtube\]_is', '<object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/$1"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/$1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object>', $tekst);
// Uitlijnen
$tekst = preg_replace("_\[left](.*)\[/left\]_si", '<div align="left">$1</div>', $tekst);
$tekst = preg_replace("_\[right](.*)\[/right\]_si", '<div align="right" style="margin-right: 5px;">$1</div>', $tekst);
$tekst = preg_replace("_\[center](.*)\[/center\]_si", '<div align="center">$1</div>', $tekst);
// Kleuren
$tekst = preg_replace("_\[color=(.*)\](.*?)\[/color\]_si", '<span style="color: $1">$2</span>', $tekst);
// Tekstgrootte
$tekst = preg_replace("_\[size=(.*)\](.*?)\[/size\]_si", '<span style="font-size: $1">$2</span>', $tekst);
$tekst = preg_replace("_\[tt](.*)\[/tt\]_si", '<tt>$1</tt>', $tekst);
$tekst = preg_replace("_\[big](.*)\[/big\]_si", '<big>$1</big>', $tekst);
$tekst = preg_replace("_\[small](.*)\[/small\]_si", '<small>$1</small>', $tekst);
// Vetgedrukt
$tekst = preg_replace("_\[b\](.*?)\[/b\]_si", '<b>$1</b>', $tekst);
// Cursief
$tekst = preg_replace("_\[i\](.*?)\[/i\]_si", '<i>$1</i>', $tekst);
// Onderstrepen
$tekst = preg_replace("_\[u\](.*?)\[/u\]_si", '<u>$1</u>', $tekst);
// Doorstrepen
$tekst = preg_replace("_\[s\](.*?)\[/s\]_si", '<s>$1</s>', $tekst);
// Knipperen
$tekst = preg_replace("_\[blink\](.*?)\[/blink\]_si", '<blink>$1</blink>', $tekst);
// Superscript
$tekst = preg_replace("_\[sup\](.*?)\[/sup\]_si", '<sup>$1</sup>', $tekst);
// Subscript
$tekst = preg_replace("_\[sub\](.*?)\[/sub\]_si", '<sub>$1</sub>', $tekst);
// All caps
$tekst = preg_replace("_\[ac\](.*?)\[/ac\]_si", '<span style="text-transform:uppercase">$1</span>', $tekst);
// Small caps
$tekst = preg_replace("_\[sc\](.*?)\[/sc\]_si", '<span style="text-transform:lowercase">$1</span>', $tekst);
// Marquee, standaard "scroll", andere opties: "slide" & "alternate"
$tekst = preg_replace("_\[slide\](.*?)\[/slide\]_si", '<marquee>$1</marquee>', $tekst);
$tekst = preg_replace("_\[slide=(.*?)\](.*?)\[/slide\]_si", '<marquee behavior="$1">$2</marquee>', $tekst);
// Smilies
$tekst = str_replace(":)"," <img src=\"images/smilies/lach.gif\" alt=\"lach\" />", $tekst);
// Quotes
while(preg_match("((\[quote=(.+?)\](.+?)\[\/quote\])|(\[quote\](.+?)\[\/quote]))is", $tekst)) {
  $tekst = preg_replace("(\[quote=(.+?)\](.+?)\[\/quote\])is",'<fieldset><legend> <b>$1 schreef:</b> </legend><br />$2<br /></fieldset><br />' ,$tekst);
  $tekst = preg_replace("(\[quote\](.+?)\[\/quote])is",'<fieldset><legend> <b>Quote</b> </legend><br />$1<br /></fieldset><br />' ,$tekst); 
}
$naam = $_POST['naam'];
$dde = $_GET['id'];

mysql_query("update instellingen set updates = '$tekst' ") or die(mysql_error());

echo "veranderd! <a href=index.php>Ga terug</a>";
} else { 
$dd = $_GET['id'];
$sqlddv = mysql_query("SELECT * FROM `instellingen`");
$vd = mysql_fetch_assoc($sqlddv);

$kb = $vd['naam'];
$kb = htmlspecialchars_decode($kb);
$kb = strip_tags($kb);
$lb = $vd['updates'];
$lb = htmlspecialchars_decode($lb);
$lb = strip_tags($lb);

?>
<FORM action="#" method="post">         
   
   Pagina Tekst:<br>         
   <script>edToolbar('mytxtarea'); </script>
    <textarea name="tekst" id="mytxtarea" class="ed" rows="5"><?php echo $lb; ?></textarea>De tekst in de pagina. 
   <BR>
<br>  
<A HREF="javascript:popUp('ubbcode.php')">Code's</A><br> <b>Let op:</b>Werkt alleen in de pagina tekst!<br> <br>
   <input type="submit" value="Plaats!" name="submit">         
   </form><?php }
 } else {
if(isset($_POST['submit'])) {
$status = $_POST['status'];
$tekst = $_POST['tekst'];

// Enters maken
$tekst = nl2br($tekst);
// Links maken
$tekst = preg_replace("_\[url]http://(.*)\[/url\]_si", '<a href="$1" target="_blank">$1</a>', $tekst);
$tekst = preg_replace("_\[url](.*)\[/url\]_si", '<a href="http://$1" target="_blank">$1</a>', $tekst);
$tekst = preg_replace("_\[url=http://(.*)\](.*?)\[/url\]_si", '<a href="$1" target="_blank">$2</a>', $tekst);
$tekst = preg_replace("_\[url=(.*)\](.*?)\[/url\]_si", '<a href="http://$1" target="_blank">$2</a>', $tekst);
$tekst = preg_replace("_\[email](.*)\[/email\]_si", '<a href="mailto://$1">$1</a>', $tekst);
$tekst = preg_replace("_\[email=(.*)\](.*?)\[/email\]_si", '<a href="mailto:$1">$2</a>', $tekst);
// Afbeeldingen
$tekst = preg_replace("_\[img](.*)\[/img\]_si", '<img src="$1" alt="Afbeelding" />', $tekst);
// Automatisch links maken
$tekst = preg_replace('#(^|[ \n\r\t])([a-z0-9]{1,6}://([a-z0-9\-]{1,}(\.?)){1,}[a-z]{2,5}(:[0-9]{2,5}){0,1}((\/|~|\#|\?|=|&amp;|&|\+){1}[a-z0-9\-._%]{0,}){0,})#si', '\\1<a href="\\2">\\2</a>', $tekst);
$tekst = preg_replace('#(^|[ \n\r\t])((www\.){1}([a-z0-9\-]{1,}(\.?)){1,}[a-z]{2,5}(:[0-9]{2,5}){0,1}((\/|~|\#|\?|=|&amp;|&|\+){1}[a-z0-9\-._%]{0,}){0,})#si', '\\1<a href="http://\\2">\\2</a>', $tekst);
$tekst = preg_replace('#(^|[ \n\r\t])(([a-z0-9\-_]{1,}(\.?)){1,}@([a-z0-9\-]{1,}(\.?)){1,}[a-z]{2,5})#si', '\\1<a href="mailto:\\2">\\2</a>', $tekst);
// Youtube video
$tekst = preg_replace('_\[youtube\].*?(v=|v/)(.+?)(&.*?|/.*?)?\[/youtube\]_is', '[youtube]$2[/youtube]', $tekst);
$tekst = preg_replace('_\[youtube\]([a-z0-9-]+?)\[/youtube\]_is', '<object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/$1"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/$1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object>', $tekst);
// Uitlijnen
$tekst = preg_replace("_\[left](.*)\[/left\]_si", '<div align="left">$1</div>', $tekst);
$tekst = preg_replace("_\[right](.*)\[/right\]_si", '<div align="right" style="margin-right: 5px;">$1</div>', $tekst);
$tekst = preg_replace("_\[center](.*)\[/center\]_si", '<div align="center">$1</div>', $tekst);
// Kleuren
$tekst = preg_replace("_\[color=(.*)\](.*?)\[/color\]_si", '<span style="color: $1">$2</span>', $tekst);
// Tekstgrootte
$tekst = preg_replace("_\[size=(.*)\](.*?)\[/size\]_si", '<span style="font-size: $1">$2</span>', $tekst);
$tekst = preg_replace("_\[tt](.*)\[/tt\]_si", '<tt>$1</tt>', $tekst);
$tekst = preg_replace("_\[big](.*)\[/big\]_si", '<big>$1</big>', $tekst);
$tekst = preg_replace("_\[small](.*)\[/small\]_si", '<small>$1</small>', $tekst);
// Vetgedrukt
$tekst = preg_replace("_\[b\](.*?)\[/b\]_si", '<b>$1</b>', $tekst);
// Cursief
$tekst = preg_replace("_\[i\](.*?)\[/i\]_si", '<i>$1</i>', $tekst);
// Onderstrepen
$tekst = preg_replace("_\[u\](.*?)\[/u\]_si", '<u>$1</u>', $tekst);
// Doorstrepen
$tekst = preg_replace("_\[s\](.*?)\[/s\]_si", '<s>$1</s>', $tekst);
// Knipperen
$tekst = preg_replace("_\[blink\](.*?)\[/blink\]_si", '<blink>$1</blink>', $tekst);
// Superscript
$tekst = preg_replace("_\[sup\](.*?)\[/sup\]_si", '<sup>$1</sup>', $tekst);
// Subscript
$tekst = preg_replace("_\[sub\](.*?)\[/sub\]_si", '<sub>$1</sub>', $tekst);
// All caps
$tekst = preg_replace("_\[ac\](.*?)\[/ac\]_si", '<span style="text-transform:uppercase">$1</span>', $tekst);
// Small caps
$tekst = preg_replace("_\[sc\](.*?)\[/sc\]_si", '<span style="text-transform:lowercase">$1</span>', $tekst);
// Marquee, standaard "scroll", andere opties: "slide" & "alternate"
$tekst = preg_replace("_\[slide\](.*?)\[/slide\]_si", '<marquee>$1</marquee>', $tekst);
$tekst = preg_replace("_\[slide=(.*?)\](.*?)\[/slide\]_si", '<marquee behavior="$1">$2</marquee>', $tekst);
// Smilies
$tekst = str_replace(":)"," <img src=\"images/smilies/lach.gif\" alt=\"lach\" />", $tekst);
// Quotes
while(preg_match("((\[quote=(.+?)\](.+?)\[\/quote\])|(\[quote\](.+?)\[\/quote]))is", $tekst)) {
  $tekst = preg_replace("(\[quote=(.+?)\](.+?)\[\/quote\])is",'<fieldset><legend> <b>$1 schreef:</b> </legend><br />$2<br /></fieldset><br />' ,$tekst);
  $tekst = preg_replace("(\[quote\](.+?)\[\/quote])is",'<fieldset><legend> <b>Quote</b> </legend><br />$1<br /></fieldset><br />' ,$tekst); 
}
$naam = $_POST['naam'];
$dde = $_GET['id'];
mysql_query("update pagina set naam = '$naam' where id = '$dde'") or die(mysql_error());
mysql_query("update pagina set tekst = '$tekst' where id = '$dde'") or die(mysql_error());
mysql_query("update pagina set status = '$status' where id = '$dde'") or die(mysql_error());
echo "veranderd! <a href=index.php>Ga terug</a>";
} else { 
$dd = $_GET['id'];
$sqlddv = mysql_query("SELECT * FROM `pagina` WHERE id = '$dd'");
$vd = mysql_fetch_assoc($sqlddv);
if($vd > 0) {
$kb = $vd['naam'];
$kb = htmlspecialchars_decode($kb);
$kb = strip_tags($kb);
$lb = $vd['tekst'];
$lb = htmlspecialchars_decode($lb);
$lb = strip_tags($lb);

?>
<FORM action="#" method="post">         
   Pagina Naam:<br>         
   <textarea name="naam" rows="1"><?php echo $kb; ?></textarea>De naam van de pagina.        
   <BR>         
   Pagina Tekst:<br>         
   <script>edToolbar('mytxtarea'); </script>
    <textarea name="tekst" id="mytxtarea" class="ed" rows="5"><?php echo $lb; ?></textarea>De tekst in de pagina. 
   <BR>
   Status:<br>
   <select size='1' name='status' id='status'>
<option selected value='0'>Aan</option>
<option value='1'>Uit</option>
</select>     <BR>    <br>  
<A HREF="javascript:popUp('ubbcode.php')">Code's</A><br> <b>Let op:</b>Werkt alleen in de pagina tekst!<br> <br>
   <input type="submit" value="Plaats!" name="submit">         
   </form>

<?php
} else {
echo "Sorry, dit id bestaat niet.";
die();
}

} }
} else {
echo "Je moet inloggen!, <a href=index.php>Ga terug</a>";
} 





?>
 
Laatst bewerkt:
De reden dat je die codes niet ziet is omdat je bij het opslaan de codes omzet naar HTML. Op die manier kan je ze niet meer zien.
Als ik jou was zou ik de bbcodes alleen omzetten als ze opgevraagd worden uit de database om weer te geven op de desbetreffende pagina. Als je dat doet krijg je tijdens het bewerken de bbcodes wel te zien, omdat ze nog in de database staan!

Hopelijk heb ik je vraag hier mee beantwoord!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan