login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Ubb

Offline finduilas - 23/08/2006 19:32 (laatste wijziging 23/08/2006 19:33)
Avatar van finduilasPHP gevorderde Hallo,

Het is me gelukt om smilies te krijgen.Enkel wil ik ook nog [ b ][/ b ],...
Maar alleen... Het lukt me niet om als ik [ b ] heb een [/ b ] te laten plaatsen.(met dezelfde knop)

Me script:
  1. <?php
  2. function replace($bericht){
  3. $bericht = htmlspecialchars($bericht);
  4. $bericht = nl2br($bericht);
  5. $bericht = preg_replace("#\[b\](.*?)\[/b\]#si","<b>\\1</b>", $bericht);
  6. $bericht = preg_replace("#\[u\](.*?)\[/u\]#si","<u>\\1</u>", $bericht);
  7. $bericht = preg_replace("#\[i\](.*?)\[/i\]#si","<i>\\1</i>", $bericht);
  8. $bericht = preg_replace("#\[url\](.*?)\[/url\]#si","<a href=\\1 target=_blank>\\1</a>", $bericht);
  9. $bericht = preg_replace("#\[url=(.*?)\](.*?)\[/url\]#si","<a href=\\1 target=_blank>\\2</a>", $bericht);
  10. $bericht = preg_replace("#\[img\](.*?)\[/img\]#si","<img src=\\1>", $bericht);
  11. $bericht = preg_replace("#\[color=(.*?)\](.*?)\[/color\]#si","<font color=\\1>\\2</font>", $bericht);
  12. $smiles = array('(ARROW)'=>'arrow.gif',
  13. '(BADGRIN)'=>'badgrin.gif',
  14. '(BIGGRIN)'=>'biggrin.gif',
  15. '(CONFUSED)'=>'confused.gif',
  16. '(COOL)'=>'cool.gif',
  17. '(CRY)'=>'cry.gif',
  18. '(DOUBT)'=>'doubt.gif',
  19. '(EVIL)'=>'evil.gif',
  20. '(EXCLAIM)'=>'exclaim.gif',
  21. '(IDEA)'=>'idea.gif',
  22. '(LOL)'=>'lol.gif',
  23. '(MAD)'=>'mad.gif',
  24. '(NEUTRAL)'=>'neutral.gif',
  25. '(QUESTION)'=>'question.gif',
  26. '(RAZZ)'=>'razz.gif',
  27. '(REDFACE)'=>'redface.gif',
  28. '(ROLLEYES)'=>'rolleyes.gif',
  29. '(SAD)'=>'sad.gif',
  30. '(SHOCK)'=>'shock.gif',
  31. '(SMILE)'=>'smile.gif',
  32. '(SURPRISED)'=>'surprised.gif',
  33. '(WINK)'=>'wink.gif');
  34. foreach($smiles as $smile=>$image){
  35. $bericht = str_replace($smile,"<img src=/provenzano/smilies/".$image.">", $bericht);
  36. }
  37. return $bericht;
  38. }
  39.  
  40.  
  41. <script type="text/javascript">
  42. function replaceSmilie(smilie) {
  43. document.priveber.bericht.value += smilie+" ";
  44. document.priveber.bericht.focus();
  45. }
  46. </script>
  47.  
  48. <a href="javascript:replaceSmilie('(ARROW)')"><img src="smilies/arrow.gif" border="0"></a>
  49. <a href="javascript:replaceSmilie('(BADGRIN)')" ><img src="smilies/badgrin.gif" border="0"></a>
  50. <a href="javascript:replaceSmilie('(BIGGRIN)')" ><img src="smilies/biggrin.gif" border="0"></a>
  51. <a href="javascript:replaceSmilie('(CONFUSED)')" ><img src="smilies/confused.gif" border="0"></a>
  52. <a href="javascript:replaceSmilie('(COOL)')" ><img src="smilies/cool.gif" border="0"></a>
  53. <a href="javascript:replaceSmilie('(CRY)')" ><img src="smilies/cry.gif" border="0"></a>
  54. <a href="javascript:replaceSmilie('(DOUBT)')" ><img src="smilies/doubt.gif" border="0"></a>
  55. <a href="javascript:replaceSmilie('(EVIL)')" ><img src="smilies/evil.gif" border="0"></a>
  56. <a href="javascript:replaceSmilie('(EXCLAIM)')" ><img src="smilies/exclaim.gif" border="0"></a>
  57. <a href="javascript:replaceSmilie('(IDEA)')" ><img src="smilies/idea.gif" border="0"></a>
  58. <a href="javascript:replaceSmilie('(LOL)')" ><img src="smilies/lol.gif" border="0"></a>
  59. <a href="javascript:replaceSmilie('(MAD)')" ><img src="smilies/mad.gif" border="0"></a>
  60. <a href="javascript:replaceSmilie('(NEUTRAL)')" ><img src="smilies/neutral.gif" border="0"></a>
  61. <a href="javascript:replaceSmilie('(QUESTION)')" ><img src="smilies/question.gif" border="0"></a>
  62. <a href="javascript:replaceSmilie('(RAZZ)')" ><img src="smilies/razz.gif" border="0"></a>
  63. <a href="javascript:replaceSmilie('(REDFACE)')" ><img src="smilies/redface.gif" border="0"></a>
  64. <a href="javascript:replaceSmilie('(ROLLEYES)')" ><img src="smilies/rolleyes.gif" border="0"></a>
  65. <a href="javascript:replaceSmilie('(SAD)')" ><img src="smilies/sad.gif" border="0"></a>
  66. <a href="javascript:replaceSmilie('(SHOCK)')" ><img src="smilies/shock.gif" border="0"></a>
  67. <a href="javascript:replaceSmilie('(SMILE)')" ><img src="smilies/smile.gif" border="0"></a>
  68. <a href="javascript:replaceSmilie('(SURPRISED)')" ><img src="smilies/surprised.gif" border="0"></a>
  69. <a href="javascript:replaceSmilie('(WINK)')" ><img src="smilies/wink.gif" border="0"></a>
  70. ?>

5 antwoorden

Gesponsorde links
Offline Crazed - 23/08/2006 20:23
Avatar van Crazed PHP interesse Kijk eens hoe het hier gedaan is.

Bekijk de bron en je vindt het bestand http://www.sitemasters.be/forum/ubb.js
En lees ook even regel 5 van dat bestand 
Offline ikkedikke - 23/08/2006 20:38
Avatar van ikkedikke PHP expert ik raad je verder eens aan om naar die tutorial te kijken op phpfreakz. die webprogrammers hacking guide. en dan specifiek naar die ubbhacks.
bedenk namelijk eens wat voor plaatje je krijgt met [img]/provenzano/smilies/shock.gif onload="javascripthier"[/img]
Offline finduilas - 23/08/2006 20:57 (laatste wijziging 24/08/2006 08:06)
Avatar van finduilas PHP gevorderde Thnx Crazed voor de tip & Fangorn om het te maken .

Ik ga nu inderdaad beveiligen op ubbhacks.

EDIT:
Ik ben bezig met die ubbhacks.Alleen loopt er iets fout:
  1. $bericht = preg_replace("#\[url=(.*?)\](.*?)\[/url\]#si","<a href='\\1' target=_blank>\\2</a>", $bericht)^;

Nu gebeurt er niet (er word geen bericht verzonden) als er een [url=http://][/url] tag in staat.
Offline Richard - 24/08/2006 08:30 (laatste wijziging 24/08/2006 08:44)
Avatar van Richard Crew algemeen misschien moet je die ^ voor de ; eens weghalen?

EDIT: overigens lijkt me die regex niet perfect, dit zou in dit geval beter werken:

  1. ~\[url=[^][]+]([^[]+)\[/url]~i


aangezien de regex toch niks anders matcht, kun je net zo goed hem laten matchen tot de ], en tot de [ binnenin (overigens: de eerste character class klopt wel, ik escape gewoon minder: [^][], zou worden met alles geescaped: [^\]\[], maar ik kies expres de posities zo, dat die karakters niet geescaped hoeven te worden;-)
Offline finduilas - 24/08/2006 17:15 (laatste wijziging 26/08/2006 08:54)
Avatar van finduilas PHP gevorderde Hallo,

Het werkt nog steeds niet:
Ik heb al vanalles geprobeerd.Het laatste was:
  1. $bericht = eregi_replace("\\[url=([^\\[]*)\\]([^\\[]*)\\[/url\\]","<a href='\\1'>\\2<a>",$bericht);


Maar wanneer er een bericht word verzonden met de [url]http://-[/url] word er niets verzonden. 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.4s