Помогите исправить javascript

DF
На сайте с 24.01.2010
Offline
9
922

Здравствуйте, хочу сделать обновление для капчи, но с javascript возникли проблемы. Есть 2 файла:

captcha.php


<?php
$code = "";
$allow = "abcdefghijklmnopqrstuvwxyz";
$max = strlen($allow)-1;
for($i=0; $i<4;$i++)
{
$num = rand(0, $max);
$temp = substr($allow, $num, 1);
$code = $code.$temp;
}
$img=imagecreatetruecolor(50, 30);
$x1=0;
$x2=60;
$y1=rand(0, 30);
$y2=rand(00, 30);
$textcolor = imagecolorallocate ( $img , 255, 255, 255);
imageline($img, $x1, $y1, $x2, $y2, $textcolor);
$x1=rand(0, 50);
$x2=rand(0, 50);
$y1=0;
$y2=30;
imageline($img, $x1, $y1, $x2, $y2, $textcolor);
imagestring($img, 4, 10, 7, $code, $textcolor);
imagejpeg($img);
?>

и index.html


<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
<title></title>
<script language="javascript" type="text/javascript">
function captchareload()
{
document.getElementById('captcha').src = 'captcha.php';
}
</script>
</head>
<body>
<img src="captcha.php" border="0" id="captcha">
<small><a href="#" onclick="javascript:captchareload()">Обновить</a></small>
</body>
</html>

Я в джаве не силен, прошу помочь найти ошибку. Если обновлять страницу index.html то номер на картинке меняется, а хотелось бы еще чтобы он менялся если кликать по ссылке "Обновить". Заранее большое спасибо.

sashka_
На сайте с 27.01.2010
Offline
103
#1

кеш браузера мешает , делайте урл с рандомом тоесть типа captcha.php?r=rand(1,100), на яве по другому как то погуглите

Знаю PHP, JS, jQuery. Помощь для вашего сайта. (/ru/forum/840509).
Ink-developer
На сайте с 31.01.2009
Offline
138
#2

captcha.php?r=Math.random()

DF
На сайте с 24.01.2010
Offline
9
#3

Если написать:


<img src="captcha.php?r=rand(1,100)" border="0" id="captcha">

или


<img src="captcha.php?r=Math.random()" border="0" id="captcha">

то картинка обновляется только один раз. Или я что-то не так делаю?

dron-fm добавил 24.06.2010 в 22:57

Все ошибку нашел. Надо так:


<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
<title></title>
<script language="javascript" type="text/javascript">
function captchareload()
{
document.getElementById('captcha').src = 'captcha.php?r='+Math.random();
}
</script>
</head>
<body>
<img src="captcha.php" border="0" id="captcha">
<small><a href="#" onclick="javascript:captchareload()">Обновить</a></small>
</body>
</html>

Спасибо всем кто ответил.

MK
На сайте с 18.08.2005
Offline
126
#4

Надо чтобы или адрес картинки разным всегда был или картинка не кешировалась браузерами

В хтмле:


<script type="text/javascript">
function captchareload(){document.getElementById('captcha').src='captcha.php?'+Math.random();}
window.onload=function(){captchareload();}
</script>
<img src="http://ya.ru/logo.png" border="0" id="captcha" alt="">

или в PHP файле вставить:


header('Cache-Control: no-store, no-cache, must-revalidate, pre-check=0, post-check=0, max-age=0');
header('Pragma: no-cache');
нет
T.R.O.N
На сайте с 18.05.2004
Offline
314
#5
dron-fm:
Если написать:

Код HTML:
<img src="captcha.php?r=rand(1,100)" border="0" id="captcha">или

Код HTML:
<img src="captcha.php?r=Math.random()" border="0" id="captcha">то картинка обновляется только один раз. Или я что-то не так делаю?

Вы не нето а НЕ ТАМ делаете.

С такой базой не стоит прикасаться ни к JS ни к HTML, коль даже границ между ними не видите.

От воздержания пока никто не умер. Хотя никто и не родился! Prototype.js был написан теми, кто не знает JavaScript, для тех, кто не знает JavaScript (Richard Cornford)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий