PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zufallscode hinkt hinterher?



Youzer
05.01.2009, 22:34
Hey also ich hab nen Script gebaut das einen 16 stelligen Code ausgeben soll in einer Grafik.



$text = GeneratePassword1()." ".GeneratePassword1().

" ".GeneratePassword1()." ".GeneratePassword1(); // der Text, welcher auf dem Bild stehen soll
$_SESSION['crackcode'] = $text;


Das ergibt dann z.B

>4D sw34 §F6m &>%R

Soweit so gut. Doch wenn ich das $_SESSION["crackcode"] einfach mal so anzeige , merk ich das der Code in der Grafik einen Schritt weiter ist
als in der Variabel! d.h die Abfrage ob der Code richtig eingegeben wurde sagt das es immer falsch ist.

Bitte lasst mich nicht hängen , ich brauch das so dringend :(

Hier ist der gesamte Code vom generierten Bild:
http://nopaste.free-hack.com/index.php?id=a2cc7c188b


DANKE

Cout
07.01.2009, 15:50
Ich weis zwar nicht ob du das Problem schon gelöst hast aber so sollte es gehen. Die User Abfrage kannst du selbst bauen.



<?php
header ('Content-type: image/png');

/**
* @name create_text
* @desc create a random text
* @param int split count
* @param int length of a split
* @param string sepperator
* @return string
*/
function create_text( $param , $param2 , $param3)
{
$temp[0] = 'abcdefghijklmnopyrstuvwxyzABCDEFGHIKLMNOPQRSTUVWX YZ1234567890';

for ( $x=1; $x <= $param ; $x++ )
{
for ( $y=1; $y <= $param2 ; $y++ )
{
$temp[1] .= $temp[0][ rand( 0 , strlen( $temp[0] ) ) ];
}
$temp[1] .= ( $x != $param ) ? $param3 : '';
}

return $temp[1];
}

// Temporärer string
$temp = create_text( 4 , 5 , ' - ' );

// Globale Variable update
$_SESSION['crackcode'] = $temp;

// Bild erstellen
$img = @imagecreatetruecolor(600, 100)
or die('Cannot Initialize new GD image stream');

// Bild gestalltung
$bg = imagecolorallocate( $img , 52, 100, 192 );
imagefill( $img, 0, 0, $bg );

// Schrifft gestallten
$text_color = imagecolorallocate( $img , 255 , 255 , 255 );
imagestring( $img , 16, 150, 40, $temp , $text_color);

//Ausgabe / Löschen
imagepng( $img );
imagedestroy( $img );

?>

echoslider
08.01.2009, 23:32
komisch ich bekomme raus das beide strings die selben wären...



<?php
session_start();

function GeneratePassword1($length = 4)
{
$char_control = "";
$chars_for_pw = "ABCDEFGH%)3§(!$>=_;?\/³#RS&ouml;&Auml;VWXYZ";
$chars_for_pw .= "0123456789";

$chars_for_pw .= "abcdefghijklmnopqrstuvwxyz";
srand((double) microtime() * 1000000);
for($i=0;$i<$length;$i++) {
$number = rand(0, strlen($chars_for_pw));
$char_control .= $chars_for_pw[$number];
}

return $char_control;

}

$text=GeneratePassword1();
$_SESSION['crackcode'] = $text;
$text2=$_SESSION['crackcode'];

echo ''.$text.'|'.$text2.'';

?>