Я хочу получить значение captcha в событии onsubmit формы, поэтому, если введенный текст отличается от данных кэширования сеанса, я отменим отправку формы. Проблема заключается в том, что я не могу получить значение сессии искаженным на документ, готовый:Это только отправкой формы, которую может получить сеанс captcha?
файл генерации капчи назван securitecode.php:
<?php
session_start();
$largeur = 120;
$hauteur = 40;
$longueur = 5;
$liste = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
$code = '';
$counter = 0;
$image = @imagecreate($largeur, $hauteur) or die('Impossible d\'initializer GD')
;
for($i=0; $i<10; $i++) {
imageline($image,
mt_rand(0,$largeur), mt_rand(0,$hauteur),
mt_rand(0,$largeur), mt_rand(0,$hauteur),
imagecolorallocate($image, mt_rand(200,255),mt_rand(200,255),mt_rand(200,255)
));
}
for($i=0, $x=0; $i<$longueur; $i++) {
$charactere = substr($liste, rand(0, strlen($liste)-1), 1);
$x += 10 + mt_rand(0,10);
imagechar($image, mt_rand(3,5), $x, mt_rand(5,20), $charactere,
imagecolorallocate($image, mt_rand(0,155), mt_rand(0,155), mt_rand(0,155)));
$code .= $charactere;
}
header('Content-Type: image/jpeg');
imagejpeg($image);
imagedestroy($image);
$_SESSION['securecode'] = $code;
?>
В моей веб-странице я создаю капчу изображения:
...
<img id="captcha_img" src="securitecode.php" />
<input type="text" id="captcha" />
<span id="msg_captcha"></span>
...
<script type="text/javascript">
$(document).ready(function() {
$('#msg_captcha').html("<?php echo $_SESSION['securecode']; ?>");
});
</script>
Когда страница загружается впервые, внутри интервала #msg_captcha ничего не отображается! Итак, как получить данные сеанса captcha?
Вы можете читать переменные php с помощью JSON до тех пор, пока значение сеанса существует до запуска JS. – user1054844
Да, вы можете, но JS не может запускать PHP-скрипт так, как описано в вопросе – SheperdOfFire