//IMAGES ZIJN TE DOWNLOADEN OP http://proeftuin.dutchville.com/index.php?dir=codegenerator
//PAGINA WAARIN DE IMAGE GEPLAATST WORDT(start.php):
//STAPPEN:
//1. CREATIE VAN KEYCODE (formaat XXXX-XXXX-XXXX) dmv functie KEYGEN
//2. ENCRYPTIE VAN DE KEYCODE dmv functie ENCRYPT
//3. AANROEP VAN PLAATJE MET GEENCODEERDE KEYCODE
[code]<?php
  function keygen($max)
  {
    $items = "1234567890";
    $x = 1;
    $total = strlen($items) - 1;
    while($x <= $max)
    {
      $rand = rand(0, $total);
      $item = substr($items, $rand, 1);
      if($x == 1)
      {
        $key = $item;
      }
      elseif($x > 1)
      {
        $key .= $item;
      }
      $x++;
    }
    return $key;
  } 
  function encrypt($string, $key) {
   $result = '';
   for($i=0; $i<strlen($string); $i++) {
     $char = substr($string, $i, 1);
     $keychar = substr($key, ($i % strlen($key))-1, 1);
     $char = chr(ord($char)+ord($keychar));
     $result.=$char;
   }

   return base64_encode($result);
  }

  $keycode = keygen(4) . "-" . keygen(4) ."-" . keygen(4);
  $imglink = encrypt("$keycode", "ditismijngeheimesleutel");
?> 
<html>
<body>
  <img src="img.php?showcode=<?php echo $imglink; ?>">
</body>
</html>[/code]



//CREATIE VAN DE IMAGE (img.php) obv bar.png
//STAPPEN:
//1. DECRYPTIE VAN GET-VAR
//2. CREATIE VAN DE IMAGE
[code]<?php
  function decrypt($string, $key) {
   $result = '';
   $string = base64_decode($string);

   for($i=0; $i<strlen($string); $i++) {
     $char = substr($string, $i, 1);
     $keychar = substr($key, ($i % strlen($key))-1, 1);
     $char = chr(ord($char)-ord($keychar));
     $result.=$char;
   }

   return $result;
  }

  $keycode = $_GET['showcode'];
  $keycode = decrypt($keycode, ditismijngeheimesleutel);

  header("Content-type: image/png");
  $im = imagecreatefrompng("bar.png");
  $tekst1     = "REG CODE";
  $xas1       = 55;
  $yas1       = 10;
  $kleur1     = imagecolorallocate($im, 255, 102, 0);
  imagestring($im, 4, $xas1, $yas1, $tekst1, $kleur1);

  $tekst2     = $keycode;
  $xas2       = 25;
  $yas2       = 35;
  $kleur2     = imagecolorallocate($im, 102, 153, 255);
  imagestring($im, 6, $xas2, $yas2, $tekst2, $kleur2);

  imagepng($im);
  imagedestroy($im);
  header("Location: bar.png");
?>[/code]




In het bestand start.php wordt de image getoond. In de broncode is alleen de geencrypte keycode te zien. Stel dat je deze code plaatst in een registratiescript, dan kun je controleren of de waarde die de gebruiker invoerd overeenkomt met die van het plaatje.

Thats it!

gr.
Joost