login  Naam:   Wachtwoord: 
Registreer je!
 Scripts:

Scripts > JS > Formulieren > Filter code buiten de [code] tags

Filter code buiten de [code] tags

Auteur: Flex1986 - 04 maart 2008 - 22:26 - Gekeurd door: Stijn - Hits: 4428 - Aantal punten: (0 stemmen)





Met de 2 onderstaande functies kan je code filteren die buiten de daarvoor bestemde ubb code tags staan. Dit zou je kunnen overwegen uit veiligheidsoverweging of omdat je het netter vindt als het tussen de code tags staat.

Lees het commentaar wat erbij staat en dan moet het duidelijk zijn.

Je kan evetueel de functie splitUBB eventueel ook gebruiken om andere functies voor te schrijven. Mocht je zelf een aanpassing of extra functie toevoegen dan zou ik het prettig vinden als je dat hier even vermeld. Voor de rest doe ermee wat je wilt!!! 

Code:
  1. /* Functie controleert of bepaalde code voorkomt in een tekst.
  2. Maar als het in bijvoorbeeld [code] tags staat mag het wel.
  3. @param text De string die gesplitst moet worden.
  4. @param startTag Het openen van een tag let hierbij op [url=blabla] moet worden [url
  5. @param endTag Het afsluiten van een tag let hierbij op dat je de hele tag gebruikt.
  6. @return Geeft false als de text clean is. Geeft true als bepaalde code wel is gevonden
  7. */
  8. function checkCode(text,startTag,endTag){
  9. //Enkele variabelen die nodig zijn
  10. var array = splitUBB(text,startTag,endTag);
  11. var regex = new RegExp("<[a-z]"); //Reguliere expressie voor een controle op html
  12. var checkArray = new Array();
  13.  
  14. //Hieronder kan je de checkArray vullen met eigen code waar je op wilt controleren
  15. checkArray[0] = 'echo $';
  16. checkArray[1] = 'system.out';
  17.  
  18. //Loop de array met alle text door.
  19. for(k = 0; k < array.length; k++){
  20. //Als het begin begint met de startTag dan slaan we hem over
  21. if(array[k].substring(0,5) != startTag){
  22. //Met de regex controleren op html is het gevonden return true;
  23. if(regex.test(array[k])){
  24. return true;
  25. }
  26.  
  27. //Loop door de checkArray als tekst is gevonden return true
  28. for(l = 0; l < checkArray.length; l++){
  29. if(array[k].indexOf(checkArray[l],0) != -1){
  30. return true;
  31. }
  32. }
  33. }
  34. }
  35. //Huh staat het netjes tussen code tags. Tsjaa dan maar false terug geven.
  36. return false;
  37. }
  38.  
  39.  
  40. /* Functie voor het opsplitsen van een string op een bepaalde ubb tag
  41. @param text De string die gesplitst moet worden.
  42. @param startTag Het openen van een tag let hierbij op [url=blabla] moet worden [url
  43. @param endTag Het afsluiten van een tag let hierbij op dat je de hele tag gebruikt.
  44. @return Geeft een array met strings terug.
  45. */
  46. function splitUBB(text,startTag,endTag){
  47. //Enkele variabelen die nodig zijn
  48. var pos = 0;
  49. var array = new Array();
  50. var i = 0;
  51. var j = 0;
  52. var tagFound = false;
  53.  
  54. //Zolang begin of eind tag nog wordt gevonden.
  55. while(pos != -1){
  56.  
  57. //Als begin tag niet is gevonden
  58. if(!tagFound){
  59. pos = text.indexOf(startTag,i);
  60.  
  61. if(pos != -1){
  62. array[j] = text.substring(0,pos);
  63. text = text.substring(pos,text.length);
  64. tagFound = true;
  65. j++;
  66. }
  67. }
  68. //Als begin tag wel is gevonden op zoek naar de eind tag.
  69. else {
  70. pos = text.indexOf(endTag,i);
  71.  
  72. if(pos != -1){
  73. pos = pos + endTag.length;
  74. array[j] = text.substring(0,pos);
  75. text = text.substring(pos,text.length);
  76. tagFound = false;
  77. j++;
  78. i++;
  79. }
  80. }
  81. }
  82.  
  83.  
  84. //Laatste stukje tekst aan de array toevoegen.
  85. if(text.length > 0){
  86. array[j] = text;
  87. }
  88.  
  89. return array;
  90. }

Download code! Download code (.txt)

 Stemmen
Niet ingelogd.

 Reacties
Post een reactie
Lees de reacties (2)
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.015s