Autor | Zpráva | ||
---|---|---|---|
denCo Profil |
#1 · Zasláno: 21. 9. 2010, 20:17:43
Zdravím. Mám vytvorený vlastný captcha obrázok pri registrácií. Vygeneruje sa vždy nový pri každom načítaní stránky:
<?php $velkost_x = 200; $velkost_y = 75; function nahodny_retazec ( $pocet ) { $vystup = ""; $nahoda = array ("A", "B", "C", "D", "E", "F", "G", "H", "J", "K", "L", "M", "N", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "2", "3", "4", "5", "6", "7", "8", "9" ); $polia = count ( $nahoda ) - 1; for ( $int = 1; $int <= $pocet; $int++ ) { $index = mt_rand(0, $polia); //vygenerovať náhodný znak $vystup .= $nahoda[$index]; //pripojenie náhodného znaku k premennej $vystup } return $vystup; } $text = nahodny_retazec ( 6 ); $miesto_na_znak = $velkost_x / (strlen( $text ) +1 ); $obrazok = imagecreatetruecolor( $velkost_x, $velkost_y ); $pozadie = imagecolorallocate ( $obrazok, 255, 255, 255 ); $okraj = imagecolorallocate ( $obrazok, 128, 128, 128 ); $farby[] = imagecolorallocate ( $obrazok, 128, 64, 192 ); $farby[] = imagecolorallocate ( $obrazok, 92, 64, 128 ); $farby[] = imagecolorallocate ( $obrazok, 10, 190, 64 ); imagefilledrectangle( $obrazok, 1, 1, $velkost_x - 2, $velkost_y - 2, $pozadie); imagerectangle( $obrazok, 0, 0, $velkost_x - 1, $velkost_y - 1, $okraj ); for ( $i = 0; $i < strlen($text); $i++) { $farba = $farby[$i % count( $farby)]; imagettftext ( $obrazok, 28 + rand(0, 8), -20 + rand(0, 40), ( $i +0.3 ) * $miesto_na_znak, 50 + rand( 0, 10 ), $farba, 'ARIAL.TTF', $text{$i} ); } for ( $i = 0; $i < 1000; $i++) { $x1 = rand( 5, $velkost_x -5 ); $y1 = rand(5, $velkost_y -5 ); $x2 = $x1 - 4 + rand( 0, 8 ); $y2 = $y1 - 4 + rand( 0, 8 ); imageline( $obrazok, $x1, $y1, $x2, $y1, $farby[rand(0, count($farby) - 1 ) ] ); } imagejpeg ( $obrazok, "img.jpg", 100 ); ?> <img src="img.jpg"> a hneď na tej stránke ho zobrazujem pomocou tagu img. Chcem sa spýtať, ako je možné, že sa stále zobrazuje ten istý pri prechádzaní webu odkazom, aj keď je už fyzicky ten obrázok úplne iný? Aj keď prídem an tú stránku o 10 min neskôr, stále sa zobrazuje ten istý. Zmení sa len keď dám refresh stránky. živá ukážka: http://hra.gravegame.net/index.php?page=registrace |
||
tiso Profil |
#2 · Zasláno: 21. 9. 2010, 20:28:20
denCo: cache. Musíš k tomu obrázku pripájať náhodný reťazec, aby sa volal inak.
|
||
denCo Profil |
#3 · Zasláno: 22. 9. 2010, 15:10:25 · Upravil/a: denCo
To som si aj myslel, práve preto som pridal do meta tagu aj no cache, ale nepomohlo. Ok, skúsim to.
EDIT// Hej, stačilo dať namiesto <img src="img.jpg"> <img src="img.jpg?<?php echo mt_rand (1000,9999);?>"> |
||
Časová prodleva: 14 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0