Captcha

Status
Niet open voor verdere reacties.

Senneweb

Gebruiker
Lid geworden
11 jun 2010
Berichten
56
Beste,

Ik heb een captcha werkend maar het is maar met 1 achtergrond.
Ik wil graag de 6 verschillende achtergronden erin en dat ze om beurt komen.

Liefst wil ik hem zo: http://www.crime-club.com/images/captcha/captcha.php

Misschien handig de achtergronden noemen bg.png, bg2.png, en zo tot en met 6.

Dit is de PHP code van mijn captcha:

PHP:
<?php
	
session_start();

header('content-type: image/png');

if(file_exists("captcha_bg.png")) 
{
$img = ImageCreateFromPNG("captcha_bg.png");
}
    
$grootte = 5;

if(!isset($_SESSION['code_captcha']))
{
$tekst = rand(1000, 9999);
}
else 
{
$tekst = $_SESSION['code_captcha'];
}
	
$kleur = ImageColorAllocate($img, 0, 0, 0); 
	
ImageString($img, $grootte, rand(3, 12), rand(5, 7), $tekst, $kleur);

imagepng($img);
imagedestroy($img);

?>

Wie kan mij helpen?
Hartelijk bedankt!
 
zo als jij het beschrijft, dan zul je het nummer van de achtergrond moeten op slaan in een session of cookie.
Je zou het zelfs nog als een $_GET variabele mee kunnen sturen met de url, telkens als de gebruiker een foutive code invoert.

Maar wat misschien makkelijker is, dat je het nummer voor de achtergrond random laat genereren.
er bestaat natuurlijk de kans dat je een achtergrond meer dan 1 x tegen komt.

Maar hoe vaak verwacht je dat een gebruiker de code opnieuw moet invoeren!
 
Op het moment doe je dit:
PHP:
if(file_exists("captcha_bg.png")) 
{
$img = ImageCreateFromPNG("captcha_bg.png");
}
wat je makkelijk kan veranderen in dit:
PHP:
$backgrounds = array('bg1.png', 'bg2.png', 'bg3.png');
$bgindex     = rand(0, count($backgrounds) - 1);

if(file_exists($backgrounds[$bgindex]) == true) 
{
   $img = ImageCreateFromPNG($backgrounds[$bgindex]);
}
en dan krijg je elke keer een willekeurige. Voor meer verschillende achtergronden kan je gewoon de array groter maken.


Een voor een kan ook (zie phobia's antwoord), maar willekeurige is... makkelijker.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan