session_start(); $ipuser = $_SERVER['REMOTE_ADDR']; $notall ==''; $notall = $_GET['notall']; $notice =''; $notice = $_GET['notice']; $_SESSION['ssapbg']= ' '; function activatiecode ($lengte) {#4 $activatie = ""; mt_srand ((double) microtime() * 1000000); while (strlen($activatie) < $lengte) {#5 $kiezen = chr(mt_rand (0,255)); if (eregi("^[0-9]$", $kiezen)) $activatie = $activatie.$kiezen; }##5 return ($activatie); }##4 $password = activatiecode(5); //fast & short version od str_split PHP3, 4x function string_split($str, $nr){ return split("-l-", chunk_split($str, $nr, '-l-')); } $code = $password; //$code = $password; // even een testcode aanmaken $image = imagecreatetruecolor (150, 45); // maakt de image met de groote van 300px breed, en 60px hoog $bgColor = imagecolorallocate($image, 231,231,231); imagefilledrectangle($image, 0, 0, 250-1, 60-1, $bgColor); $aFonts = array ('/www/webspace/sites/famvweb/familievis.nl/library/fonts/font2.ttf', '/www/webspace/sites/famvweb/familievis.nl/library/fonts/font3.ttf', '/www/webspace/sites/famvweb/familievis.nl/library/fonts/font4.ttf', '/www/webspace/sites/famvweb/familievis.nl/library/fonts/font5.ttf', '/www/webspace/sites/famvweb/bierkruiers.nl/library/fonts/font6.ttf'); // zet alle beschikbare fonts in een array $aCode = string_split($code, 1); // zet alle karakters apart in een array for ($i = 0; $i < count ($aCode); $i++) // een for-lus maken voor het aantal karakters dat de $aCode array bevat { $fontcolor = imagecolorallocate ($image, // kleurencombinatie maken voor de image variabel ($image) rand (0, 100), // rood, rand (0, 100), // groen, rand (0, 100)); // blauw, deze geven de nieuwe kleur per karakter if (count ($aCode) ==5) // de volgende locaties (x-as) aanmaken voor een code van 4 karakters lang { $pos[0] = rand (5, 27); // locatie aanmaken (x-as) voor de eerste karakter $pos[1] = rand (35, 57); // locatie aanmaken (x-as) voor de tweede karakter $pos[2] = rand (98, 123); // locatie aanmaken (x-as) voor de derde karakter $pos[3] = rand (123, 150); // locatie aanmaken (x-as) voor de vierde karakter } if (count ($aCode) == 6) // de volgende locaties (x-as) aanmaken voor een code van 5 karakters lang { $pos[0] = rand (5, 27); // locatie aanmaken (x-as) voor de eerste karakter $pos[1] = rand (35, 57); // locatie aanmaken (x-as) voor de tweede karakter $pos[2] = rand (65, 87); // locatie aanmaken (x-as) voor de derde karakter $pos[3] = rand (93, 105); // locatie aanmaken (x-as) voor de vierde karakter $pos[4] = rand (111, 126); // locatie aanmaken (x-as) voor de vijfde karakter $pos[5] = rand (132, 145); // locatie aanmaken (x-as) voor de vijfde karakter } imagettftext ($image, // image voorbereiden voor de image variabel ($image) rand (16, 19), // fontgrootte, willekeurig getal laten kiezen tussen de 13 en 19 rand (-30, 30), // draaihoek, willekeur getal laten kiezen tussen de -31 en de 31 $pos[$i], // karakter positie breedte toewijzen, hebben we al voorbereid ($pos[]) rand (31, 23), // karakter positie hoogte, kiezen tussen de 51 en de 19 $fontcolor, // fontkleur toewijzen, hebben we al voorbereid ($fontcolor) $aFonts[rand (0, 3)], // font, willekeurig font toewijzen uit de array ($aFonts) $aCode[$i]); // code toewijzen, op volgorde van de array } $_SESSION['ssapbg'] = $code; $filename = date("Ymdhs"); imagepng ($image, 'guestbook/codes/'.$filename.'.png'); // de .png image aanmaken als captcha.png imagedestroy ($image); // de handel afronden, en klaar! ?>