kostenloser Webspace werbefrei: lima-city


Klick-Captcha erstellen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    lebanon-elzein

    Kostenloser Webspace von lebanon-elzein, auf Homepage erstellen warten

    lebanon-elzein hat kostenlosen Webspace.

    Ich habe auf meiner Internetseite ein Kontaktformular eingebaut und möchte das mit einem "Klick-Captcha" (ich weiß nicht, ob man das so nennt...halt ein Captcha, wo man in ein Viereck klicken muss) sichern.
    Bis jetzt habe ich folgendes script, das ein bild mit kreisen und linien in zufälliger frabe und zufälliger position und ein rotes viereck mit rotem rahmen generiert:



    <?php

    header('Content-Type: image/png');

    $bild = imageCreateTrueColor(100, 100);
    $bg = imageColorAllocate($bild, 255, 255, 255);
    imageFilledRectangle($bild, 0, 0, 100, 100, $bg);

    for($h = 0; $h != 15; ++$h)
    {
    $farbe = imageColorAllocate($bild, rand(0, 255), rand(0, 255), rand(0, 127));
    imageline($bild, rand(0, 100), rand(0, 100), rand(0, 100), rand(0, 100), $farbe);
    imageEllipse($bild, rand(10, 90), rand(10, 90), rand(10, 20), rand(10, 20), $farbe);
    }

    $rTr = imageColorAllocateAlpha($bild, 255, 0, 0, 64);
    $r = imageColorAllocate($bild, 255, 0, 0);
    $arr = array(rand(0, 60), rand(0, 60));
    $arr[2] = $arr[0]+rand(20, 40);
    $arr[3] = $arr[1]+rand(20, 40);
    imageFilledRectangle($bild, $arr[0], $arr[1], $arr[2], $arr[3], $rTr);
    imageRectangle($bild, $arr[0], $arr[1], $arr[2], $arr[3], $r);

    imagePNG($bild);

    imageDestroy($bild);
    ?>



    Wie kann ich es hinkriegen, dass man erst weiterkommt (bei mir eben die nachricht abschickt), wenn man in das rote viereck geklickt hat, bzw, dass das captcha bei klick an eine andere stelle neu geladen wird?

    Vielen Dank schon mal
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Nachdem Du mit PHP die Grafik erstellt hast und für die Darstellung unter HTML eingebunden hast, brauchst Du nur noch ein passendes "map" dazu zu erstellen. Das ist eine ganz alte HTML-Methode, mit der man Teile einer Bildes in Links verwandeln kann. Ich weiß nicht, ob es sowas auch als CSS-Implementation gibt (wahrscheinlich ...), aber die HTML-Geschichte funktioniert ja auch so!

    Schau mal hier nach: http://de.selfhtml.org/html/grafiken/verweis_sensitive.htm

    Beitrag zuletzt geändert: 5.2.2010 21:21:50 von cars-ten
  4. cars-ten schrieb:
    Nachdem Du mit PHP die Grafik erstellt hast und für die Darstellung unter HTML eingebunden hast, brauchst Du nur noch ein passendes "map" dazu zu erstellen. Das ist eine ganz alte HTML-Methode, mit der man Teile einer Bildes in Links verwandeln kann. Ich weiß nicht, ob es sowas auch als CSS-Implementation gibt (wahrscheinlich ...), aber die HTML-Geschichte funktioniert ja auch so!

    Schau mal hier nach: http://de.selfhtml.org/html/grafiken/verweis_sensitive.htm

    Was hat das dann noch mit einem Captcha zu tun?

    Damit es auch ein Captcha bleibt, muss du via JavaScript herausfinden an welcher Koordinate die Maus war, als geklickt wurde.
    Diese Position schickst du nun via Ajax an dein PHP Script, welches dann auswerten muss, ob der Klick richtig war, oder daneben.
  5. Öhmmmm, ...
    da hast Du natürlich Recht! Wenn der weiterführende Link dann auch schon im html-Code steht, kann natürlich jeder Robot diesem Link folgen. Sorry für meine "mentale Entgleisung"! :frown:

    Habe jetzt nicht die Zeit, Dir eine ausgearbeitete andere Alternative vorzustellen, aber ich weiß - habe es selbst schon angewendet! - , dass es mit jQuery extrem einfach ist, die Mausposition (und die Position des Bildes selbst) herauszufinden, die Du bei einem Click auf einem Bild hattest. Ich weiß, ich wiederhole mich mit meinen jQuery-Hinweisen (auch in anderen Freds), aber diese Library ist wirklich das geilste, was ich in den letzten Jahren zu JavaScript gefunden habe!

    http://jquery.com

    Du musst das Click-Event auf das Bildchen abfangen und damit Deinen Ajax-Aufruf generieren.

    [[Damit gehört dieser Beitrag jetzt eigentlich in den JavaScript-Fred]]

    Beitrag zuletzt geändert: 6.2.2010 11:32:49 von cars-ten
  6. Damit es auch ein Captcha bleibt, muss du via JavaScript herausfinden an welcher Koordinate die Maus war, als geklickt wurde.
    Diese Position schickst du nun via Ajax an dein PHP Script, welches dann auswerten muss, ob der Klick richtig war, oder daneben.

    Toll, und ich darf dann JS aktivieren, nur um durch die Captcha zu kommen? Nutze ein input type="image". Du bekommst du Koordinaten, wo das Bild geklickt wurde dann.
  7. nikic schrieb:
    Damit es auch ein Captcha bleibt, muss du via JavaScript herausfinden an welcher Koordinate die Maus war, als geklickt wurde.
    Diese Position schickst du nun via Ajax an dein PHP Script, welches dann auswerten muss, ob der Klick richtig war, oder daneben.

    Toll, und ich darf dann JS aktivieren, nur um durch die Captcha zu kommen? Nutze ein input type="image". Du bekommst du Koordinaten, wo das Bild geklickt wurde dann.

    WTF? Das wäre mir wirklich sehr neu.
    Hast du irgendwelche Beispiele etc.? Habe via Google nichts dergleichen gefunden.
  8. Hallo lucas9991!

    siehe: http://de.selfhtml.org/html/formulare/formularbuttons.htm#grafische

    Kleines Beispiel:

    <pre>
    <?php
      print_r($_REQUEST);
    ?>
    </pre>
    
    <form method="POST" action="">
    <input type="image" src="./bild.png" name="Name" value="Wert" />
    </form>


    Ausgabe zb:
    <pre>
    Array
    (
        [Name_x] => 86
        [Name_y] => 84
        [Name] => Wert
    )
    </pre>
    
    <form method="POST" action="">
    <input type="image" src="./bild.png" name="Name" value="Wert" />
    </form>


    Funktioniert mit method="GET" natürlich auch.
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!