hallo Leute
ich mir mir einen Capatcha geschrieben allerdings nicht mit Texteingabe sondern eine Bild abfrage. es werden 6 Bilder da gestellt. Unter dem Bild steht dann wo man draufklicken soll. Die Bilder sind in einer db aufgelistet. Ich will das dann ein zufälliges Bild das richtige ist.
das ist mein Code:
Alles anzeigen
das Script liefert mir auch ein richtiges Bild nur eine Sache stimmt nicht. sagen wir mal $correct ist 3 dann wird nicht der Name in $_SESSION['captcha_code_de'] gespeichert.
ein Screenshot zum beispiel:
[Blockierte Grafik: http://87.106.34.205/f.png]
wie man sieht ist an der Position 6 ist eine Stecknadel und kein Handy.
wenn ich das ORDER BY RAND() raus nehme werden mir die ersten 6 Symbole angezeigt dafür stimmt der Name mit der Position
[Blockierte Grafik: http://87.106.34.205/r.png]
so jetzt meine frage:
was mache ich falsch???
mfg JeyBe
ich mir mir einen Capatcha geschrieben allerdings nicht mit Texteingabe sondern eine Bild abfrage. es werden 6 Bilder da gestellt. Unter dem Bild steht dann wo man draufklicken soll. Die Bilder sind in einer db aufgelistet. Ich will das dann ein zufälliges Bild das richtige ist.
das ist mein Code:
Quellcode
- <?php
- session_start();
- include('config/database.config.php');
- $img = imagecreatetruecolor(384, 256);
- imagealphablending($img, false);
- imagesavealpha($img, true);
- $connection = mysql_connect(dbHost, dbUser, dbPassword) or die ($lang["dbConnectionError"]);
- $sql = "SELECT * FROM `" . dbName . "`.`captcha` ORDER BY RAND() LIMIT 6";
- $query = mysql_query($sql);
- $count = 1;
- $correct = rand(1,6);
- while ($row = mysql_fetch_object($query)){
- if($count == 1){
- $start_x = 0;
- $start_y = 0;
- }
- if($count == 2){
- $start_x = 128;
- $start_y = 0;
- }
- if($count == 3){
- $start_x = 256;
- $start_y = 0;
- }
- if($count == 4){
- $start_x = 0;
- $start_y = 128;
- }
- if($count == 5){
- $start_x = 128;
- $start_y = 128;
- }
- if($count == 6){
- $start_x = 256;
- $start_y = 128;
- }
- if($count == $correct){
- $_SESSION['captcha_x'] = $start_x;
- $_SESSION['captcha_y'] = $start_y;
- $_SESSION['captcha_width'] = 128;
- $_SESSION['captcha_height'] = 128;
- $_SESSION['captcha_code_en'] = $row->code_en;
- $_SESSION['captcha_code_de'] = $row->code_de;
- $_SESSION['captcha_count'] = $count;
- }
- $imgAdd = imagecreatefrompng('images/cpatcha/' . $row->image . '.png');
- imagecopy($img, $imgAdd, $start_x, $start_y, 0, 0, 128, 128);
- $count += 1;
- }
- header('Content-Type: image/png');
- imagepng($img);
- imagedestroy($img);
- imagedestroy($imgAdd);
- ?>
das Script liefert mir auch ein richtiges Bild nur eine Sache stimmt nicht. sagen wir mal $correct ist 3 dann wird nicht der Name in $_SESSION['captcha_code_de'] gespeichert.
ein Screenshot zum beispiel:
[Blockierte Grafik: http://87.106.34.205/f.png]
wie man sieht ist an der Position 6 ist eine Stecknadel und kein Handy.
wenn ich das ORDER BY RAND() raus nehme werden mir die ersten 6 Symbole angezeigt dafür stimmt der Name mit der Position
[Blockierte Grafik: http://87.106.34.205/r.png]
so jetzt meine frage:
was mache ich falsch???
mfg JeyBe