ubb parser fout
ik had een vraagie
ik werk net als vele onder ons met een ubbparser
nu zit ik met een probleempje
als mensen bijv in mijn gastenboek of forum iets invullen met iets van
dj's dan zet ie een \ achter de ' zo dus dj\'s terwijl hij dat niet moet doen
de text wat word opgeslagen word zo gedaan:mysql_real_escape_string($Toelichting)
wat is hier de oplossing voor?
en hoe kan ik zorgen dat mensen enters gebruiken dat ik bijv om de 10 woorden een enter wil hebben in de zin? is daar ook een oplossing voor?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?
$Toelichting = htmlspecialchars($Toelichting);
$Toelichting = nl2br($Toelichting);
$Toelichting = str_replace("[br]", "\n", $Toelichting);
$Toelichting = str_replace("[br]", "\n", $Toelichting);
$Toelichting = preg_replace("/\[li\](.*?)\[\/li\]/si","<li>\\1</li>",$Toelichting);
$Toelichting = preg_replace("/\[b\](.*?)\[\/b\]/si","<b>\\1</b>",$Toelichting);
$Toelichting = preg_replace("/\[i\](.*?)\[\/i\]/si","<i>\\1</i>",$Toelichting);
$Toelichting = preg_replace("/\[u\](.*?)\[\/u\]/si","<u>\\1</u>",$Toelichting);
$Toelichting = preg_replace('_\[quote=(.*?)](.*?)\[/quote]_ise', "quote1(' \\2 ','1',' \\1 ')",$Toelichting);
$Toelichting = eregi_replace("\\[email\\]([^\\[]*)\\[/email\\]","<a class=a href=\"mailto:\\1\">\\1</a>",$Toelichting);
$Toelichting = eregi_replace("\\[email=([^\\[]*)\\]([^\\[]*)\\[/email\\]","<a class=a href=\"mailto:\\1\">\\2</a>",$Toelichting);
$Toelichting = eregi_replace("\\[url\\]www.([^\\[]*)\\[/url\\]", "<a class=\"a\" href=\"http://www.\\1\" target=\"_blank\">\\1</a>",$Toelichting);
$Toelichting = eregi_replace("\\[url\\]([^\\[]*)\\[/url\\]","<a class=\"a\" href=\"\\1\" target=\"_blank\">\\1</a>",$Toelichting);
$Toelichting = eregi_replace("\\[url=([^\\[]*)\\]([^\\[]*)\\[/url\\]","<a class=\"a\" href=\"\\1\" target=\"_blank\">\\2</a>",$Toelichting);
$Toelichting = eregi_replace("\\[urll=([^\\[]*)\\]([^\\[]*)\\[/urll\\]","<a class=\"a\" href=\"\\1\">\\2</a>",$Toelichting);
$Toelichting = eregi_replace("\\[flash=([^\\[]*)\\,([^\\[]*)\\]([^\\[]*)\\[/flash\\]","<embed PLUGINSPAGE=http://www.apple.com/quicktime/download/ SRC=\\3 VOLUME=100 HEIGHT=300 WIDTH=400></embed>",$Toelichting);
$Toelichting = preg_replace ("#\[ftp\]([a-z]+?://){1}([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+\(\)]+)\[/ftp\]#", "<a href=\"ftp://\\1\\2\" target=\"_blank\">\\2</a>", $Toelichting);
$Toelichting = preg_replace ("#\[ftp\]([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+\(\)]+)\[/ftp\]#", "<a href=\"ftp://\\1\" target=\"_blank\">\\1</a>", $Toelichting);
$Toelichting = preg_replace ("#\[ftp=([a-z]+?://){1}([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+\(\)]+)\](.*?)\[/ftp\]#", "<a href=\"ftp://\\1\\2\" target=\"_blank\">\\2</a>", $Toelichting);
$Toelichting = preg_replace ("#\[ftp=([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+\(\)]+)\](.*?)\[/ftp\]#", "<a href=\"ftp://\\1\" target=\"_blank\">\\2</a>", $Toelichting);
$Toelichting = preg_replace("/\[move](.*?)\[\/move\]/si","<marquee behavior=alternate width='90%'>\\1</marquee>",$Toelichting);
$Toelichting = preg_replace("/\[b\](.+?)\[\/b\]/is",'<strong>\1</strong>', $Toelichting);
$Toelichting = preg_replace("/\[i\](.+?)\[\/i\]/is",'<em>\1</em>', $Toelichting);
$Toelichting = preg_replace("/\[u\](.+?)\[\/u\]/is",'<u>\1</u>', $Toelichting);
$Toelichting = preg_replace("/\[center\](.+?)\[\/center\]/is",'<center>\1</center>', $Toelichting);
$Toelichting = preg_replace("/\[table\](.+?)\[\/table\]/is",'<table>\1</table>', $Toelichting);
$Toelichting = preg_replace("/\[td\](.+?)\[\/td\]/is",'<td>\1</td>', $Toelichting);
$Toelichting = preg_replace("/\[tr\](.+?)\[\/tr\]/is",'<tr>\1</tr>', $Toelichting);
$Toelichting = preg_replace("/\[br\](.+?)\[\/br\]/is",'<br>\1</br>', $Toelichting);
$Toelichting = preg_replace("/\[s\](.+?)\[\/s\]/is",'<s>\1</s>', $Toelichting);
$Toelichting = preg_replace ("#\[color=(\#[0-9A-F]{6}|[a-z\-]+)\](.*?)\[/color\]#si", "<font color=\"\\1\">\\2</font>", $Toelichting);
$Toelichting = preg_replace ("/\[font=(.*)\](.*)\[\/font\]/", "<font face=\"$1\">$2</font>", $Toelichting);
$Toelichting = preg_replace ("/\[size=(.*)\](.*)\[\/size\]/", "<font size=\"$1\">$2</font>", $Toelichting);
$Toelichting = preg_replace ("/\[glow](.*)\[\/glow\]/","<table border='0' style='FILTER: glow(color=#00FF00, strength=2)'><tr><td>\\1</td></tr></table>",$Toelichting);
$Toelichting = preg_replace ("/\[shadow](.*)\[\/shadow\]/", "<table style='FILTER: shadow(color=#808080, direction=5, strength=4)' border='0'><tr><td>\\1</td></tr></table>",$Toelichting);
$Toelichting = preg_replace ("/\[glow=(.*)\\](.*)\[\/glow\]/","<table border='0' style='FILTER: glow(color=\\1, strength=2)'><tr><td>\\2</td></tr></table>",$Toelichting);
$Toelichting = preg_replace ("/\[shadow=(.*)\\](.*)\[\/shadow\]/", "<table style='FILTER: shadow(color=\\1, direction=5, stregth=2)' border='0'><tr><td>\\2</td></tr></table>",$Toelichting);
$Toelichting = preg_replace('_\[quote=(.*?)](.*?)\[/quote]_ise', "quote(' \\2 ','1',' \\1 ')",$Toelichting);
$Toelichting = preg_replace("/\[img\](.*?)\[\/img\]/si", "<img src=\"\\1\" border=\"0\" HEIGHT=\"300\" WIDTH=\"350\">",$Toelichting);
?>
$Toelichting = htmlspecialchars($Toelichting);
$Toelichting = nl2br($Toelichting);
$Toelichting = str_replace("[br]", "\n", $Toelichting);
$Toelichting = str_replace("[br]", "\n", $Toelichting);
$Toelichting = preg_replace("/\[li\](.*?)\[\/li\]/si","<li>\\1</li>",$Toelichting);
$Toelichting = preg_replace("/\[b\](.*?)\[\/b\]/si","<b>\\1</b>",$Toelichting);
$Toelichting = preg_replace("/\[i\](.*?)\[\/i\]/si","<i>\\1</i>",$Toelichting);
$Toelichting = preg_replace("/\[u\](.*?)\[\/u\]/si","<u>\\1</u>",$Toelichting);
$Toelichting = preg_replace('_\[quote=(.*?)](.*?)\[/quote]_ise', "quote1(' \\2 ','1',' \\1 ')",$Toelichting);
$Toelichting = eregi_replace("\\[email\\]([^\\[]*)\\[/email\\]","<a class=a href=\"mailto:\\1\">\\1</a>",$Toelichting);
$Toelichting = eregi_replace("\\[email=([^\\[]*)\\]([^\\[]*)\\[/email\\]","<a class=a href=\"mailto:\\1\">\\2</a>",$Toelichting);
$Toelichting = eregi_replace("\\[url\\]www.([^\\[]*)\\[/url\\]", "<a class=\"a\" href=\"http://www.\\1\" target=\"_blank\">\\1</a>",$Toelichting);
$Toelichting = eregi_replace("\\[url\\]([^\\[]*)\\[/url\\]","<a class=\"a\" href=\"\\1\" target=\"_blank\">\\1</a>",$Toelichting);
$Toelichting = eregi_replace("\\[url=([^\\[]*)\\]([^\\[]*)\\[/url\\]","<a class=\"a\" href=\"\\1\" target=\"_blank\">\\2</a>",$Toelichting);
$Toelichting = eregi_replace("\\[urll=([^\\[]*)\\]([^\\[]*)\\[/urll\\]","<a class=\"a\" href=\"\\1\">\\2</a>",$Toelichting);
$Toelichting = eregi_replace("\\[flash=([^\\[]*)\\,([^\\[]*)\\]([^\\[]*)\\[/flash\\]","<embed PLUGINSPAGE=http://www.apple.com/quicktime/download/ SRC=\\3 VOLUME=100 HEIGHT=300 WIDTH=400></embed>",$Toelichting);
$Toelichting = preg_replace ("#\[ftp\]([a-z]+?://){1}([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+\(\)]+)\[/ftp\]#", "<a href=\"ftp://\\1\\2\" target=\"_blank\">\\2</a>", $Toelichting);
$Toelichting = preg_replace ("#\[ftp\]([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+\(\)]+)\[/ftp\]#", "<a href=\"ftp://\\1\" target=\"_blank\">\\1</a>", $Toelichting);
$Toelichting = preg_replace ("#\[ftp=([a-z]+?://){1}([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+\(\)]+)\](.*?)\[/ftp\]#", "<a href=\"ftp://\\1\\2\" target=\"_blank\">\\2</a>", $Toelichting);
$Toelichting = preg_replace ("#\[ftp=([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+\(\)]+)\](.*?)\[/ftp\]#", "<a href=\"ftp://\\1\" target=\"_blank\">\\2</a>", $Toelichting);
$Toelichting = preg_replace("/\[move](.*?)\[\/move\]/si","<marquee behavior=alternate width='90%'>\\1</marquee>",$Toelichting);
$Toelichting = preg_replace("/\[b\](.+?)\[\/b\]/is",'<strong>\1</strong>', $Toelichting);
$Toelichting = preg_replace("/\[i\](.+?)\[\/i\]/is",'<em>\1</em>', $Toelichting);
$Toelichting = preg_replace("/\[u\](.+?)\[\/u\]/is",'<u>\1</u>', $Toelichting);
$Toelichting = preg_replace("/\[center\](.+?)\[\/center\]/is",'<center>\1</center>', $Toelichting);
$Toelichting = preg_replace("/\[table\](.+?)\[\/table\]/is",'<table>\1</table>', $Toelichting);
$Toelichting = preg_replace("/\[td\](.+?)\[\/td\]/is",'<td>\1</td>', $Toelichting);
$Toelichting = preg_replace("/\[tr\](.+?)\[\/tr\]/is",'<tr>\1</tr>', $Toelichting);
$Toelichting = preg_replace("/\[br\](.+?)\[\/br\]/is",'<br>\1</br>', $Toelichting);
$Toelichting = preg_replace("/\[s\](.+?)\[\/s\]/is",'<s>\1</s>', $Toelichting);
$Toelichting = preg_replace ("#\[color=(\#[0-9A-F]{6}|[a-z\-]+)\](.*?)\[/color\]#si", "<font color=\"\\1\">\\2</font>", $Toelichting);
$Toelichting = preg_replace ("/\[font=(.*)\](.*)\[\/font\]/", "<font face=\"$1\">$2</font>", $Toelichting);
$Toelichting = preg_replace ("/\[size=(.*)\](.*)\[\/size\]/", "<font size=\"$1\">$2</font>", $Toelichting);
$Toelichting = preg_replace ("/\[glow](.*)\[\/glow\]/","<table border='0' style='FILTER: glow(color=#00FF00, strength=2)'><tr><td>\\1</td></tr></table>",$Toelichting);
$Toelichting = preg_replace ("/\[shadow](.*)\[\/shadow\]/", "<table style='FILTER: shadow(color=#808080, direction=5, strength=4)' border='0'><tr><td>\\1</td></tr></table>",$Toelichting);
$Toelichting = preg_replace ("/\[glow=(.*)\\](.*)\[\/glow\]/","<table border='0' style='FILTER: glow(color=\\1, strength=2)'><tr><td>\\2</td></tr></table>",$Toelichting);
$Toelichting = preg_replace ("/\[shadow=(.*)\\](.*)\[\/shadow\]/", "<table style='FILTER: shadow(color=\\1, direction=5, stregth=2)' border='0'><tr><td>\\2</td></tr></table>",$Toelichting);
$Toelichting = preg_replace('_\[quote=(.*?)](.*?)\[/quote]_ise', "quote(' \\2 ','1',' \\1 ')",$Toelichting);
$Toelichting = preg_replace("/\[img\](.*?)\[\/img\]/si", "<img src=\"\\1\" border=\"0\" HEIGHT=\"300\" WIDTH=\"350\">",$Toelichting);
?>
get_magic_quotes_gpc en op PHP.net is te vinden hoe je er vanaf komt.
Klinkt als een gevalletje "Magic Quotes". Je kan controleren of die aan staat met magic_quotes_runtime=off
magic_quotes_gpc=off
magic_quotes_sybase=off
dan krijg ik een deze fout
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
hoe kan ik dit oplossen?
Gewijzigd op 01/01/1970 01:00:00 door Robert dat ben ik
wat is de beste manier om gastenboek berichten te laten tonen
omdat hier mensen vaak een hele lange zin maken en dan trekt ie je pagina uiteen is hierook een oplossing voor??
thnx
edit: bedankt Blanche dit probleem is verholpen met dj's toppie bedankt!
Gewijzigd op 01/01/1970 01:00:00 door Robert dat ben ik
MaDHouSe schreef op 14.01.2009 13:56:
wordwrap()wat is de beste manier om gastenboek berichten te laten tonen
omdat hier mensen vaak een hele lange zin maken en dan trekt ie je pagina uiteen is hierook een oplossing voor??
omdat hier mensen vaak een hele lange zin maken en dan trekt ie je pagina uiteen is hierook een oplossing voor??
Code (php)
1
2
3
4
5
2
3
4
5
<?
$Toelichting = wordwrap($_POST['bericht'],20, "<br />\n"); //de input
require("include/ubbc2.php"); //de parser
mysql_real_escape_string($Toelichting); //opslaan met
?>
$Toelichting = wordwrap($_POST['bericht'],20, "<br />\n"); //de input
require("include/ubbc2.php"); //de parser
mysql_real_escape_string($Toelichting); //opslaan met
?>
dan word bij de 20e letter een enter gezet?
edit:alleen nu werkt me ubb paster niet meer hij doet nu wel de testen goed maar al me smiles zijn weg
Screenshot
Gewijzigd op 01/01/1970 01:00:00 door Robert dat ben ik
Gebruik wordwrap() nadat je je ubb code omgezet hebt?
dus alle dingen worden al geadd in database
het tonen daar word geen parser bij gebruikt alleen tijdens het opslaan naar database
of is dit niet goed?
MaDHouSe schreef op 14.01.2009 14:20:
Dan ga je daar al de fout in. Je slaat de teksten met ubb en al op in de database en pas als je e.e.a. weer wilt gaan geven op het scherm ga je je ubb parser er overheen halen.nou voor dat ik de text opsla zeg maar dan pars ik de texten al
Want wat nu als je de gebruiker nog de mogelijkheid wilt geven om teksten te wijzigen en je ze dus weer in een textarea moet zetten. Ga je dan de omgezette teksten weer door een omgekeerde parser heen halen zodat de ubb code er weer in komt te staan? Lijkt me niet...
en pas bij het tonen op de website de paser er over heen gooien
en dan? moet ik dan eerst die wordwrap() er overheen gooien of eerst de parser en dan pas de wordwrap() ?
Zolang je wordwrap() op hele woorden laat afbreken, zou het niet uit moeten maken wanneer je die gebruikt.
ok ga ik dat ff verbouwen thnx Blanche voor je goeie uitleg!
Blanche schreef op 14.01.2009 15:25:
Zolang je wordwrap() op hele woorden laat afbreken
en hoe weet ik dat het hele woorden zijn hoe kan ik dat controleren?
greetz madhouse
Quote:
Dat is standaard als ik me niet vergis. Maar kijk even in de php.net handleiding om het zeker te weten...en hoe weet ik dat het hele woorden zijn hoe kan ik dat controleren?
$Toelichting = wordwrap($rij['Bericht'],20, "<br />\n");
dan zie ik op de website die <br /> er bij staan.. hoe haal je dat weer weg dan?
Dat komt waarschijnlijk door je htmlentities, die moet je toepassen voordat je wordwrap op die manier toepast...
$Toelichting = wordwrap($rij['Bericht'],20, "[br]"); //het tonen op de website
heb het nu zo en het werkt bedankt Blanche