Возможно, этот вопрос уже задавался, но, к сожалению, удовлетворительных ответов я не нашел. Я просто спрошу его для своего конкретного случая и попрошу админов не удалять вопрос хотя бы несколько дней, чтобы я мог попробовать...
У меня есть страница. Он использует капчу. Вот так:
<?php
session_start(); // the captcha saves the md5 into the session
?>
<img src="captcha.php" onclick="this.src = this.src" />
Это был мой первый код. Это не сработало, потому что браузер посчитал бесполезным перезагружать изображение, если исходник тот же. Мое текущее решение - передать параметр get:
onclick="this.src = 'captcha.php?randomNumber='+ranNum"
Переменная JavaScript var ranNum
генерируется случайным образом каждый раз, когда срабатывает событие onclick
. Это работает нормально, тем не менее, мне не нравится возможность, если - хотя и маловероятно - случай, когда два числа совпадают дважды подряд. Хотя случайное число колеблется между -50 000 и 50 000 - мне все равно это не нравится. И я не думаю, что метод является правильным. Я хотел бы знать более «правильный» метод с помощью AJAX. Я знаю, что это возможно. Надеюсь, вы знаете, как это возможно ^^ В таком случае, пожалуйста, покажите мне.
Заранее спасибо!
Кстати, если я напишу cap(t)cha по-другому, ничего страшного, ссылка на файл PHP будет прямо в моем коде: я использую randomImage.php
РЕДАКТИРОВАТЬ: случайное число в JavaScript генерируется только для перезагрузки изображения. Captcha.php не заботится о параметре $_GET. Строка действительно случайная.
РЕДАКТИРОВАТЬ: Таким образом, я хотел бы знать, как заставить браузер перезагружать изображение, не передавая разные параметры получения каждый раз, когда событие срабатывает.