Miten saisi toimimaan vieraskirjassa bbcode tagit, jos koodi on tällainen
function BBcode ($data) { $data = preg_replace("/\[(\/?)(b|u|i|s|strike|blockquote|code|pre)\]/i", "<$1$2>", $data); $data = preg_replace("/\[url\](.*)\[\/url\]/i", "<a href=\"$1\" target=\"_blank\">$1</a>", $data); $data = preg_replace("/\[url=(.*)\](.*)\[\/url\]/i", "<a href=\"$1\" target=\"_blank\">$2</a>", $data); return $data; }
Tuo funktio arvatenkin muuttaa merkkijonossa olevat BBcode-tagit HTML-tageiksi, joten jos tulostat vieraskirjan viestit jotenkin näin:
echo $viestin_teksti;
niin kirjoitakin:
echo BBcode($viestin_teksti);
Tunnistin funktion omasta vieraskirjastani ja se toimii juuri noin kuin Antti selitti. :)
Jos sivuni write koodi on
<?php include('config.php'); $zero = "0"; $name = $_POST['name']; $mail = $_POST['mail']; $www = $_POST['www']; $data = $_POST['data']; if (!$name) {$zero = "1";} if (!$data) {$zero = "1";} if ($zero == "0") { $data = wordwrap( $data, $wordwrap, " ", 1 ); $name = htmlspecialchars($name); $name = trim($name); $name = str_replace("\n", " ", $name); $name = stripslashes($name); $mail = htmlspecialchars($mail); $mail = trim($mail); $mail = str_replace("\n", " ", $mail); $mail = stripslashes($mail); $www = htmlspecialchars($www); $www = trim($www); $www = str_replace("\n", " ", $www); $www = stripslashes($www); $data = htmlspecialchars($data); $data = trim($data); $data = str_replace("\n", " ", $data); $data = stripslashes($data); $i = 0; $rand_key = "1"; while ($i<11) { $rand = rand(0, 9); $rand_key = $rand_key . $rand; $i++; } $ip = $_SERVER['REMOTE_ADDR']; $time = date('d.m.Y H:i'); $con = $rand_key . $sprtr . $time . $sprtr . $ip . $sprtr . $name . $sprtr . $mail . $sprtr . $www . $sprtr . $data; $fp = fopen($db, "a"); fputs ($fp, "$con\n"); fclose ($fp); header("Location: index.php"); exit; } else { exit("Et täyttänyt kaikkia tarvittavia kohtia, nimi ja viesti ovat pakollisia!"); } $data = preg_replace("/\[(\/?)(b|u|i|s|strike|blockquote|code|pre)\]/i", "<$1$2>", $data); $data = preg_replace("/\[url\](.*)\[\/url\]/i", "<a href=\"$1\" target=\"_blank\">$1</a>", $data); $data = preg_replace("/\[url=(.*)\](.*)\[\/url\]/i", "<a href=\"$1\" target=\"_blank\">$2</a>", $data); return $data; ?>
niin mihin sijoitan nuo bbcode tagit?
Siis write.php:
Lisää ennemmin tagien muunnos vasta siihen vaiheeseen, kun vieraskirjan viestit näytetään käyttäjälle.
eli read.phphen joka nayttaa tältä
<?php include('config.php'); $fields = file("$db"); $fields = array_reverse($fields); $maxlines = count($fields); $pages = ceil($maxlines / $maxperpage); print "<div>\n"; print "<table width=\"480\" border=\"0\" cellspacing=\"1\" bgcolor=\"#BBBBBB\">\n"; print "<tr><td bgcolor=\"#33CCFF\" valign=\"middle\">\n"; for ($i=1; $i <= $pages; $i++) { print ("<FONT class='leipa'><a href=\"index.php?q=viekku&page=" . $i . "\">" . $i . "</a> \n"); } print "<FONT class='leipa'><a href=\"index.php?q=viekku&page=0.2\">Kaikki </a>\n"; print "</td></tr>\n"; print "</table><br>\n"; $page = $_GET['page']; if ($page == 0.2) { $i = 0; $max = $maxlines; } else { if ($page == 1) { $i = 0; $max = $maxperpage - 1; } else { $i = $page * $maxperpage - $maxperpage; $max = $page * $maxperpage - 1; } } if (empty($page)) { $i = 0; $max = $maxperpage - 1; } while ($i <= $max) { if (empty($fields[$i])) { print " "; $i++; } else { list($rand_key, $time, $ip, $name, $mail, $www, $data) = explode("$sprtr", $fields[$i]); $i++; print "<table width=\"480\" border=\"0\" cellspacing=\"1\" cellpadding=\"3\" bgcolor=\"#BBBBBB\">\n"; print "<tr><td bgcolor=\"#33CCFF\"><FONT class='leipa'>\n"; print "$time\n"; print " - $name\n"; if (!empty($mail)) { print " - ( <a href=\"mailto:$mail\">email</a> |\n"; } else { print " - ( email |\n"; } if (!empty($www)) { print " <a href=\"http://$www\">www</a> )\n"; } else { print " www )\n"; } print "</td></tr><tr><td bgcolor=\"#ACDCFE\"><FONT class='leipa'>\n"; print $data; print "</td></tr>\n"; print "</table><br>\n"; } } print "<table width=\"480\" border=\"0\" cellspacing=\"1\" bgcolor=\"#BBBBBB\">\n"; print "<tr><td valign=\"middle\"bgcolor=\"#33CCFF\">\n"; for ($i=1; $i <= $pages; $i++) { print ("<FONT class='leipa'><a href=\"index.php?q=viekku&page=" . $i . "\">" . $i . "</a> \n"); } print "<FONT class='leipa'><a href=\"index.php?q=viekku&page=0.2\">Kaikki </a>\n"; print "</td></tr>\n"; print "</table>\n"; print "</div>\n"; ?>
mihin kohtaan se pitäisi sitten laittaa?
Aihe on jo aika vanha, joten et voi enää vastata siihen.