Autor | Zpráva | ||
---|---|---|---|
Generation Profil * |
#1 · Zasláno: 16. 7. 2014, 14:01:31 · Upravil/a: Generation
Ahoj všem,
potřeboval bych poradit jak upravit následující script aby tam bylo více zakázaných slov. Zakázané slovo je na řádku 31. Já s JS vůbec neumím takže nejsem schopny to opravit. Google moc nepomohl, jen asi to že by to mělo jít nějak pomocí array. Budu vděčný za úpravu. var chat = {} chat.fetchMessages = function () { $.ajax({ url: '/chat/ajax/chat.php', type: 'post', data: { method: 'fetch' }, success: function(data) { $('.chat .messages').html(data); } }); } chat.throwMessage = function (message) { if ($.trim(message).length !=0) { if(!strstr(message, "heslo")) { $.ajax({ url: '/chat/ajax/chat.php', type: 'post', data: { method: 'throw', message: message }, success: function(data) { chat.fetchMessages(); chat.entry.val(''); } }); }else{ alert("Text obsahuje zakázané slovo "); } } } chat.entry = $('.chat .entry'); chat.entry.bind('keydown', function(e) { if (e.keyCode === 13 && e.shiftKey === false) { chat.throwMessage($(this).val()); event.preventDefault(); } }); chat.interval = setInterval(chat.fetchMessages, 15000); chat.fetchMessages(); function Smile(smiley) { var currentText = document.getElementById("zprava"); var smileyWithPadding = " " + smiley + " "; currentText.value += smileyWithPadding; currentText.focus(); } function Names(name) { var currentText = document.getElementById("zprava"); var nameWithPadding = ""+name+""; currentText.value = nameWithPadding; currentText.focus(); } function strstr(haystack, needle, bool) { var pos = 0; haystack += ''; pos = haystack.indexOf(needle); if (pos == -1) { return false; }else{ if (bool) { return haystack.substr(0, pos); }else{ return haystack.slice(pos); } } } Omlouvám se zakázané slovo je na řádku 18 |
||
Keeehi Profil |
Řádek 18 si nahraď tímto:
var index; var words = ["a", "b", "c"]; var ok=true; for (index = 0; index < words.length; ++index) { if(strstr(message, words[index])) { ok = false; break; } } if (ok) { |
||
Generation Profil * |
#3 · Zasláno: 16. 7. 2014, 14:14:58
|
||
Časová prodleva: 1 měsíc
|
|||
Generation Profil * |
#4 · Zasláno: 18. 8. 2014, 04:45:33
Zdravím po delší době.
Bylo mi záhadou proč mi nikdo nepíše do chatu. Používám tento JS pro zakázání nevhodných slov chat.throwMessage = function (message) { if ($.trim(message).length !=0) { var index; var words = ["heslo", "hesla", "password", "Heslo", "Hesla", "Password"]; var ok=true; for (index = 0; index < words.length; ++index) { if(!strstr(message, words[index])) { ok = false; break; } } if (ok) { $.ajax({ url: '/chat/ajax/chat.php', type: 'post', data: { method: 'throw', message: message }, success: function(data) { chat.fetchMessages(); chat.entry.val(''); } }); }else{ alert("Text obsahuje některé ze zakázaných slov, např.: heslo, hesla, ....... O hesla v chatu totiž nežádáme"); } } } A ať napíši do chatu cokoliv aniž by to bylo ze seznamu zakázaných slov tak to hodí hlášku "Text obsahuje......." A zprávu to neodešle. Může mi někdo poradit z jakého důvodu se tak děje? Děkuji |
||
juriad Profil |
Já bych to řešil mnohem jednodušeji, testování bych prováděl regulárním výrazem; žádnou funkci strstr (které ani nerozumíš) ani cyklus nepotřebuješ.
http://kod.djpw.cz/zzeb Chyba je na 9. řádku, máš tam navíc negaci, kterou tam Keeehi neměl. |
||
Generation Profil * |
#6 · Zasláno: 18. 8. 2014, 14:44:34
juriad:
Děkuji moc |
||
Časová prodleva: 10 let
|
0