| 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: 12 let
|
|||
0