Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как правильно обновить капчу ajax-сом?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
zypikov
Отправлено: 13 Декабря, 2012 - 16:46:39
Post Id



Частый гость


Покинул форум
Сообщений всего: 219
Дата рег-ции: Нояб. 2010  


Помог: 3 раз(а)




CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $('#update').click(function() {
  3.   $.ajax({
  4.   url: 'php/capt.php',
  5.   success: function(data) {
  6.     $('#cap').html(data);
  7.   }
  8. });
  9. });
  10.  


capt.php
PHP:
скопировать код в буфер обмена
  1.  
  2.  $captch = "<img src=\"../php/captcha_zdr/captcha_img.php?<?=session_name()?>=<?=session_id()?>\" border=\"0\">";
  3.  echo $captch;
  4.  


В такое способ обновляется всего один раз, при щелчке на update.
Пробовал так

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $('#update').click(function() {
  3. $.ajax({
  4.   url: '../php/captcha_zdr/captcha_img.php?<?=session_name()?>=<?=session_id()?',
  5.   success: function(data) {
  6.     $('#cont').append(data);
  7.     alert('Load was performed.');
  8.   }
  9. });
  10. });
  11.  

т.е. непосредственно запрос к скрипту генер-щим картинку капчи. Появляются артефакты. Как-будто браузер не знает заголовок content-type.
Вообщем как правильно обновить с помощью jQuery капчу?

(Отредактировано автором: 13 Декабря, 2012 - 16:47:27)



-----
У всего есть обратная сторона.
 
 Top
esterio
Отправлено: 13 Декабря, 2012 - 16:56:12
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




А зачем AJAX. Капча - ето картинка которая находиться в теге img с атрибутом src. Что мешает на JS заменяь src изображения.
 
 Top
DeepVarvar Супермодератор
Отправлено: 13 Декабря, 2012 - 19:20:21
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




esterio, если вы не знаете, то лучше не советуйте, лучше промолчите.

zypikov, у вас изначально неверное представление о том, как должна работать капча.

В кратце расскажу и немного покажу принцип работы.
PHP, как вы знаете, умеет генерировать живые картинки, сам, на лету.
По этой теме достаточно информации и тут на форуме, и в сети.
Общая структура файла капчи:
1) Старт сессии
2) Генерация строки, которая будет на картинке
3) Запись этой строки в сессию
4) Генерация картинки на основе этой строки

Проверить капчу можно сравнив введенное значение пользователем с значением хранящемся в сессии, в любом скрипте на вашем сайте.

Теперь о вашем главном вопросе, как правильно обновить капчу по клику на саму картинку капчи.
Вот так будет вполне достаточно:
CODE (html):
скопировать код в буфер обмена
  1. <img src="/captcha/index.php" onclick="this.src = '/captcha/index.php?' + Math.random();" />
 
 Top
esterio
Отправлено: 14 Декабря, 2012 - 03:44:18
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




DeepVarvar
Простите но я не то самое ответил
DeepVarvar пишет:
<img src="/captcha/index.php" onclick="this.src = '/captcha/index.php?' + Math.random();" />

esterio пишет:
на JS заменяь src изображения.

Только забил сказать что надо добавлять случайную строку чтоб не кешировалось
 
 Top
zypikov
Отправлено: 14 Декабря, 2012 - 12:43:28
Post Id



Частый гость


Покинул форум
Сообщений всего: 219
Дата рег-ции: Нояб. 2010  


Помог: 3 раз(а)




DeepVarvar пишет:
Теперь о вашем главном вопросе, как правильно обновить капчу по клику на саму картинку капчи.
Вот так будет вполне достаточно:
CODE (html):
скопировать код в буфер обмена

<img src="/captcha/index.php" onclick="this.src = '/captcha/index.php?' + Math.random();" />

DeepVarvar, вот этого вполне было достаточно)) в карму + 1 вам добавил

esterio пишет:
А зачем AJAX. Капча - ето картинка которая находиться в теге img с атрибутом src. Что мешает на JS заменяь src изображения.

Ну так код бы написали)


-----
У всего есть обратная сторона.
 
 Top
IllusionMH
Отправлено: 14 Декабря, 2012 - 13:17:10
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)





zypikov пишет:
Ну так код бы написали)

может и весь сайт сразу? ;) Вам дали отличный совет как это сделать, этого должно быть достаточно

(Отредактировано автором: 14 Декабря, 2012 - 13:17:30)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB