Crew algemeen |
|
Hallo iedereen,
Ik ben bezig met mijn keygenerator uit te bouwen. Nu staan er lijntjes op etc.
Het probleem:
Op een image wordt een andere key weergegeven. Ik heb de key al in een sessie gestoken, maar het helpt niet.
Als ik de key boven en onder het image print, geeft hij dezelfde waarde, maar het figuurtje krijgt een andere key... RAAR?
Image.php:
<?php
include ("keygen.class.php");
$keygen = new keygen();
(string) $key = $keygen->giveKey();
if($_GET['actie'] === "img")
$keygen->makeImage($_REQUEST['key']); # Headers moeten veranderd worden, de ene met text, de andere met een image, dit is dus de enige oplossing om het figuurtje te tonen
echo ("<img src=\"http://scripting.mizone.be/demos/keyinimage/image.php?actie=img&key=".$key."\"><br>"); # Geeft de key in de vorm van een image weer
echo ("Key: ".$key."<br>"); # Geeft de key weer, zonder image
?>
<?php include ("keygen.class.php"); $keygen = new keygen(); (string) $key = $keygen->giveKey(); if($_GET['actie'] === "img") $keygen->makeImage($_REQUEST['key']); # Headers moeten veranderd worden, de ene met text, de andere met een image, dit is dus de enige oplossing om het figuurtje te tonen echo ("<img src=\"http://scripting.mizone.be/demos/keyinimage/image.php?actie=img&key=".$key."\"><br>"); # Geeft de key in de vorm van een image weer echo ("Key: ".$key."<br>"); # Geeft de key weer, zonder image ?>
keygen.class.php
<?php
class keygen {
var $sleutel;
function keygen () {
$this->sleutel = $this->__generateKey();
}
function giveKey () {
return $this->sleutel;
}
function __generateKey() {
(int) $lengte = 10;
$tekens = array_merge (range (0, 9), range ('a', 'z'));
(string) $key = "";
for ($i = 0; $i < $lengte; $i++)
(string) $key .= $tekens[rand(0, sizeof ($tekens))];
return strtoupper($key);
}
function makeImage ($key) {
header("Content-Type: image/png");
(int) $angle = rand(-5, 5);
$imagehandle = imagecreate(200, 50);
$bgcolor = imagecolorallocate($imagehandle, 240, 242, 234);
$black = imagecolorallocate($imagehandle, 0, 0, 0);
(int) $i = rand (1, 5);
while ($i-- != 0) {
(int) $x1 = rand (0, 200);
(int) $x2 = rand (0, 200);
(int) $y1 = rand (0, 50);
(int) $y2 = rand (0, 50);
imageline($imagehandle, $x1, $y1, $x2, $y2, $black);
}
imagettftext($imagehandle, 20, $angle, 10, 35, $black, './arial.ttf', $key);
imagepng($imagehandle);
imagedestroy($imagehandle);
}
}
?>
<?php class keygen { var $sleutel; function keygen () { $this->sleutel = $this->__generateKey(); } function giveKey () { return $this->sleutel; } function __generateKey() { (int) $lengte = 10; (string) $key = ""; for ($i = 0; $i < $lengte; $i++) (string ) $key .= $tekens[rand(0, sizeof ($tekens))]; } function makeImage ($key) { header("Content-Type: image/png"); (int ) $angle = rand(-5, 5); $imagehandle = imagecreate(200, 50); $bgcolor = imagecolorallocate($imagehandle, 240, 242, 234); $black = imagecolorallocate($imagehandle, 0, 0, 0); while ($i-- != 0) { (int ) $x1 = rand (0, 200); (int ) $x2 = rand (0, 200); (int ) $y1 = rand (0, 50); (int ) $y2 = rand (0, 50); imageline($imagehandle, $x1, $y1, $x2, $y2, $black); } imagettftext($imagehandle, 20, $angle, 10, 35, $black, './arial.ttf', $key); imagepng($imagehandle); imagedestroy($imagehandle); } } ?>
Laatste versie van code [incl. changes]: http://scripting.mizone.be/Source/keyinimage
Voorbeeldje: http://scripting.mizone.be/Demo/keyinimage
(de source is trouwens de source van het voorbeeld, LIVE!)
Greetz,
GDX^
|