PHP и JavaScript: перезагрузите изображение с картинки - PullRequest
0 голосов
/ 08 февраля 2011

Я сделал свой собственный класс капчи в PHP, просто для изучения.Все нормально, работаю как хочу.Я пытался добавить кнопку "обновить изображение", но не знаю, как мне это сделать.

код формы:

<p><img src="img.php" alt="Captcha!" /></p>

img.php код:

<?php
require_once 'captcha.class.php';
$captcha = Captcha::instance(10);
echo $captcha;
?>

__ toString метод:

public function __toString()
{
    ob_start();
    header('Content-Type: image/jpeg');
    imagejpeg($this->drawImage(), null, 100);
    return ob_get_flush();
}

Этот код выведет капчу.Как я могу обновить это изображение?Что-то в AJAX было бы здорово!Спасибо.

Ответы [ 3 ]

0 голосов
/ 08 февраля 2011
<html>
<head>
<script type="text/javascript">
    function reload()
    {
        var img = new Image();
        img.src = 'img.php';
        var x = document.getElementById('captcha');
        x.src = img.src;
    }
</script>
</head>
<body>
<a href="javascript: reload()" >Reload</a>
<img src="img.php" alt="Captcha!" id="captcha" />
</body>
</html>

Возможно, простой x.src = 'img.php' справится с задачей, но просто чтобы быть уверенным, что он получит новый запрос, я сделал это, используя другое изображение (оно также дает вам немного больше для поиска / изучения).

0 голосов
/ 08 февраля 2011

Как вы проверяете, правильно ли введен код проверки, когда форма заполнена?Переменная сеанса?

Если это одна переменная сеанса, вы можете просто обновить изображение с помощью простого JavaScript.Добавление строки произвольного запроса в конец URL-адреса изображения позволит избежать проблем с кэшированием.

0 голосов
/ 08 февраля 2011

Не могли бы вы перезагрузить сделать AJAX-вызов на страницу, которая создает новую капчу, возвращающую недавно созданный результат в DIV?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...