Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.11.2008, 21:18
Интересующийся
Отправить личное сообщение для reutovo Посмотреть профиль Найти все сообщения от reutovo
 
Регистрация: 09.11.2008
Сообщений: 22

Реализация псведо "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 должно оставаться без изменения, до следующей перезагрузки страницы. Но на деле отнюдь не так( Почему?
Ответить с цитированием
  #2 (permalink)  
Старый 09.11.2008, 22:35
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

А зачем такая каптча?
Ответить с цитированием
  #3 (permalink)  
Старый 10.11.2008, 12:06
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

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

Давайте по порядку, последовательность действий.
Вы зашли на страницу, почему uri должен быть равен "?code="+code ?
Вы же только зашли на страницу и число только что сформировалось. Как оно у Вас попадает в location.search?
Ответить с цитированием
  #4 (permalink)  
Старый 10.11.2008, 20:12
Интересующийся
Отправить личное сообщение для reutovo Посмотреть профиль Найти все сообщения от reutovo
 
Регистрация: 09.11.2008
Сообщений: 22

Сообщение от Snipe Посмотреть сообщение
Многое объясняет. =)

Давайте по порядку, последовательность действий.
Вы зашли на страницу, почему uri должен быть равен "?code="+code ?
Вы же только зашли на страницу и число только что сформировалось. Как оно у Вас попадает в location.search?
Ааааа вот где сабакка порыта. Понял намек. Отсюда вопрос, а как тогда организовать проверку, на введеные в поле данные, чтобы те соответствовали значению переменной? без php, ajax, xml и прочих сетевых технологий =) например на каком нибудь бесплатном хосте а-ля narod.ru.

"А зачем такая каптча?" - ради интереса, так сказать самореализация таланта.
Ответить с цитированием
  #5 (permalink)  
Старый 10.11.2008, 20:26
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от reutovo
так сказать самореализация таланта
Какой-то странный у вас талант.
Ответить с цитированием
  #6 (permalink)  
Старый 10.11.2008, 21:04
Интересующийся
Отправить личное сообщение для reutovo Посмотреть профиль Найти все сообщения от reutovo
 
Регистрация: 09.11.2008
Сообщений: 22

Сообщение от Kolyaj Посмотреть сообщение
Какой-то странный у вас талант.
Почему? Просто хочу разбираться в JS, и познать его по максимуму.

PS: Давай те по теме, а то флуд тут развели.
Ответить с цитированием
  #7 (permalink)  
Старый 11.11.2008, 08:47
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

Сообщение от reutovo Посмотреть сообщение
Ааааа вот где сабакка порыта. Понял намек. Отсюда вопрос, а как тогда организовать проверку, на введеные в поле данные, чтобы те соответствовали значению переменной? без php, ajax, xml и прочих сетевых технологий =) например на каком нибудь бесплатном хосте а-ля narod.ru.
Не совсем понял, вам нужна проверка на соответствие созданной в JS переменной?
Ну тогда примерно так:
var inputVal = document.getElemenById('id_инпута_куда вводят').value;
if (parseInt(inputVal) == code) {
  ...
}
Ответить с цитированием
  #8 (permalink)  
Старый 14.11.2008, 18:00
Интересующийся
Отправить личное сообщение для reutovo Посмотреть профиль Найти все сообщения от reutovo
 
Регистрация: 09.11.2008
Сообщений: 22

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

Суть дела такова, необходимо проверить данные введенные в текстовое поле по умолчанию используется input type='text' и сопоставить с присвоенными переменной данными. Да вот только загвоздка, переменная - динамичная, по средствам простейших мат. расчет + math.random() в переменную помещаю число, вот его как раз и нужно проверить. Captcha на JS тобишь.
Ответить с цитированием
  #9 (permalink)  
Старый 14.11.2008, 18:20
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

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

Что делаете, где не работает и что пишет FireBug?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализация тега <blink> СЕРГИЙ Общие вопросы Javascript 5 09.11.2008 21:25