Anti-chat або "nick flooding" ч.2

Anti-chat продовження, або Nick Flooding II

Передбачається що читець знаком зі статтею " Nick Flooding " також подумавши що флудить чат якимись цифрами наповнений відстій, вирішив прочитати продовження :) Сдесь ми написав про те як можна генерувати приблизно справжні імена, наприклад ви самі вибираєте з чого складатиметься нік: літери, цифри, інші символи. У розглянутому нижче прикладі, скрипт генерує нік з восьми символів, причому перша знак заголовна, а решта прописні (Вони відзначені галочками). Цей скрипт дозволено використовувати в обмін того який генерує випадкове кількість, в той час флуд стане більше схожий на дії людини але ніяк не скрипта.

Приклад праці скрипта, код з коментарями наведено нижче

Перший символ: Number Lowercase Uppercase Other
Решта символів: Number Lowercase Uppercase Other
Довжина ника: Інші символи:
Generated nick:
Рассотрім на зразку коду головної сторінки чату:

<FORM action = http: //www.domen.ru/cgi-bin/chat/chat.cgi method = post name = "myform">
<! - Ще тут може існувати вид для введення пароля, обрання кольору також т.д. ->
<input type = text name = nick size = 20> <! - Форма в яку вписується нік при заході в чат ->
<input type = button value = "Generate Nick"> <! - У зразку на кнопці написано Generate Nick, в чаті може існувати по іншому ->
</ form>

А так виглядає цей код з "вбудованим" скриптом написаним саме під нього (я володію внаслідок що в скрипті використані ті бла бла назви форм), хоч він на вигляд також великий, розібратися ніяк не складно навіть того хто ніяк не знає Java-script. Зеленим кольором написані коментарі, їх можна стерти.

<! - Скрипт, який генерує випадковий набір символів з заданими параметрами. Там в якому місці вказано набір символів, наприклад var lowerChars = "abcdefghijklmnopqrstuvwxyz" англійські дозволено поміняти на російські ->
<SCRIPT LANGUAGE = "JavaScript">
<! - Begin
function getRandomNum (lbound, ubound) {
return (Math.floor (Math.random () * (ubound - lbound)) + lbound);
}
function getRandomChar (number, lower, upper, other, extra) {
var numberChars = "23456789";
var lowerChars = "abcdefghijklmnopqrstuvwxyz";
var upperChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var otherChars = "`! @ # $% & * () -_ = + [{]} \\ |;: '\ ", <.> /? ";
var charSet = extra;
if (number == true)
charSet + = numberChars;
if (lower == true)
charSet + = lowerChars;
if (upper == true)
charSet + = upperChars;
if (other == true)
charSet + = otherChars;
return charSet.charAt (getRandomNum (0, charSet.length));
}
function getnick (length, extraChars, firstNumber, firstLower, firstUpper, firstOther,
latterNumber, latterLower, latterUpper, latterOther) {
var rc = "";
if (length> 0)
rc = rc + getRandomChar (firstNumber, firstLower, firstUpper, firstOther, extraChars);
for (var idx = 1; idx <length; ++ idx) {
rc = rc + getRandomChar (latterNumber, latterLower, latterUpper, latterOther, extraChars);
}
return rc;
}

// End ->
</ script>



<center> <table width = 80% border = 0>
<tr align = center> <td>
<FORM action = http: //www.domen.ru/cgi-bin/chat/chat.cgi method = post name = "myform"> <! - Ім'я форми можете замінити на своє, тільки ніяк не забудьте усюди поміняти, далі виділено жовтим кольором ->
<table border = 0> <tr> <td>

First character can be: <! - Яким змушений існувати головний символ ->
</ td> <td>
<input type = checkbox name = firstNumber> Number
<input type = checkbox name = firstLower> Lowercase
<input type = checkbox name = firstUpper checked> Uppercase
<input type = checkbox name = firstOther> Other

</ td> </ tr> <tr> <td>

Latter characters can be: <! - Якими повинні існувати інші символи ->
</ td> <td>
<input type = checkbox name = latterNumber> Number
<input type = checkbox name = latterLower checked> Lowercase
<input type = checkbox name = latterUpper> Uppercase
<input type = checkbox name = latterOther> Other
</ td> </ tr> <tr> <td>

Довжина ника:
</ td> <td>
<! - Довжина ника, в даному випадку зазначено 8 символів ->
<input type = text name = nickLength size = 3 value = 8>


<! - Якщо потрібно використовувати якісь інші символи, то їх дозволено вписати сюди ->
<! - Extra nick characters: ->
Інші символи: <input type = text name = extraChars size = 20>


</ td> </ tr> </ table>
</ td> </ tr> <tr align = center> <td>

Generated nick:
<input type = text name = nick size = 20> <! - Форма в яку записується, згенерований нік, іменується nick, ніяк не забудьте що це ім'я тут як зразок, в різних чатах вона різна: user, username, nick. .., тому скрипт пишіть під назву в вашому чаті ->

<! - Функція, виконувана при натисканні кнопки ->
<input type = button value = "Generate Nick" onClick = "
document. myform. nick .value =
getnick (document. myform .nickLength.value, document. myform .extraChars.value,
document. myform .firstNumber.checked, document. myform .firstLower.checked,
document. myform .firstUpper.checked, document. myform .firstOther.checked,
document. myform .latterNumber.checked, document. myform .latterLower.checked,
document. myform .latterUpper.checked, document. myform .latterOther.checked); ">
</ form> <! - Не забудьте написати закривається тег form ->
</ td> </ tr> </ table>

Залишається тільки вписати в автозавантаження сторінки виконання цього скрипта також відправку даних на сервак (submit). Так виглядатиме витік коду:
<HTML> <HEAD> <TITLE> Chat Flooder </ TITLE>

<Script Language = "JavaScript">
function submit () {
Timer = setTimeout ( "(document. Myform .submit ())", 1000);
}
</ Script>

</ HEAD>

<BODY onload = "document. Myform.nick .value =
getnick (document. myform .nickLength.value, document. myform .extraChars.value,
document. myform .firstNumber.checked, document. myform .firstLower.checked,
document. myform .firstUpper.checked, document. myform .firstOther.checked,
document. myform .latterNumber.checked, document. myform .latterLower.checked,
document. myform .latterUpper.checked, document. myform .latterOther.checked);

submit () ">

Далі особисто код сторінки також скрипт ...

Робочі приклади ніяк не викладаю спеціально тому їх доведеться все пора апгрейдити, по-друге, ми мислю що флудить чати - погано :)

Попередня стаття