Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Реализация псведо "captcha" (https://javascript.ru/forum/misc/2141-realizaciya-psvedo-captcha.html)

reutovo 09.11.2008 21:18

Реализация псведо "captcha"
 
День всем как сами себе пожелаете.
"Я только учусь" сказал один дядька роясь в капоте "Москвич-412". Так и я, только учусь.

Суть проблемы такова, не как не могу понять почему теряется значение переменной.

function code() {
uri = document.location.search //Типо как в php =)
one = Math.random();
code = parseInt(200 / 84 * 17 + 129 / one - 1)

document.write("<div id='captcha'>"+code+"</div><br>") //выводит картинку бэкграундом, а поверх уже текст.
document.write("<form action='index.html' method='get' name='captcha'>")
document.write("<input name='code' type='text' maxlength='4' value="+code+">") //сюда кладу случайное число.
document.write("<input value='Ok' type='submit'>")
document.write("</form>")
}
//Типа проверка. На деле болт...
if(uri == "?code="+code) {
alert("link")
}
//Ежели дописать:
else {
if(uri != "?code="+code) {
alert("вы ввели неверное число.")
}
//то выводится else.


Вот собственно почему так? Переменная code, хранит данные до перезагрузки странички, верно? Значит и значение value хранит значение до перезагрузки страницы. Отсюда следует, что и при проверке code содержит то самое число, которое было высчитано при загрузке страницы и значение code должно оставаться без изменения, до следующей перезагрузки страницы. Но на деле отнюдь не так( Почему?

Kolyaj 09.11.2008 22:35

А зачем такая каптча?

Snipe 10.11.2008 12:06

Цитата:

//Типа проверка. На деле болт...
Многое объясняет. =)

Давайте по порядку, последовательность действий.
Вы зашли на страницу, почему uri должен быть равен "?code="+code ?
Вы же только зашли на страницу и число только что сформировалось. Как оно у Вас попадает в location.search?

reutovo 10.11.2008 20:12

Цитата:

Сообщение от Snipe (Сообщение 8235)
Многое объясняет. =)

Давайте по порядку, последовательность действий.
Вы зашли на страницу, почему uri должен быть равен "?code="+code ?
Вы же только зашли на страницу и число только что сформировалось. Как оно у Вас попадает в location.search?

Ааааа вот где сабакка порыта. Понял намек. Отсюда вопрос, а как тогда организовать проверку, на введеные в поле данные, чтобы те соответствовали значению переменной? без php, ajax, xml и прочих сетевых технологий =) например на каком нибудь бесплатном хосте а-ля narod.ru.

"А зачем такая каптча?" - ради интереса, так сказать самореализация таланта.

Kolyaj 10.11.2008 20:26

Цитата:

Сообщение от reutovo
так сказать самореализация таланта

Какой-то странный у вас талант.

reutovo 10.11.2008 21:04

Цитата:

Сообщение от Kolyaj (Сообщение 8279)
Какой-то странный у вас талант.

Почему? Просто хочу разбираться в JS, и познать его по максимуму.

PS: Давай те по теме, а то флуд тут развели.

Snipe 11.11.2008 08:47

Цитата:

Сообщение от reutovo (Сообщение 8278)
Ааааа вот где сабакка порыта. Понял намек. Отсюда вопрос, а как тогда организовать проверку, на введеные в поле данные, чтобы те соответствовали значению переменной? без php, ajax, xml и прочих сетевых технологий =) например на каком нибудь бесплатном хосте а-ля narod.ru.

Не совсем понял, вам нужна проверка на соответствие созданной в JS переменной?
Ну тогда примерно так:
var inputVal = document.getElemenById('id_инпута_куда вводят').value;
if (parseInt(inputVal) == code) {
  ...
}

reutovo 14.11.2008 18:00

Цитата:

Сообщение от Snipe (Сообщение 8282)
Не совсем понял, вам нужна проверка на соответствие созданной в JS переменной?
Ну тогда примерно так:
var inputVal = document.getElemenById('id_инпута_куда вводят').value;
if (parseInt(inputVal) == code) {
  ...
}

Что-то не получается у меня проверка. Видимо сказывается неопытность.

Суть дела такова, необходимо проверить данные введенные в текстовое поле по умолчанию используется input type='text' и сопоставить с присвоенными переменной данными. Да вот только загвоздка, переменная - динамичная, по средствам простейших мат. расчет + math.random() в переменную помещаю число, вот его как раз и нужно проверить. Captcha на JS тобишь.

Snipe 14.11.2008 18:20

Ну, и в чем затык? Я Вам примерно написал код...

Что делаете, где не работает и что пишет FireBug?


Часовой пояс GMT +3, время: 00:46.