ilch Forum » Allgemein » Plauder Ecke » ReCaptcha

Geschlossen
  1. #1
    User Pic
    MOODFOR Mitglied
    Registriert seit
    25.06.2014
    Beiträge
    177
    Beitragswertungen
    2 Beitragspunkte
    Mit ReCaptcha Antispam v. 1.0.2
    externer Link
    kann man ja den ReCaptcha von google auf seiner iLCH Seite benutzen. Nun hat google eine neue Version bei der man nur ankreuzen muss "Im not a robot". WIe kann ich das neue Formular nutzen ?

    externer Link


    Zuletzt modifiziert von HATEFRONT am 15.02.2015 - 09:23:51
    The government pretend,
    they your friend. And then when you steal some shit,they put you in jail
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    CeeJay Hall Of Fame
    Registriert seit
    23.03.2007
    Beiträge
    2.425
    Beitragswertungen
    18 Beitragspunkte
    Hallo Hatefront,

    ich vermute stark, dass das Modul neu geschrieben werden müsste, sonst wäre es ein einfacher Copy&Paste-Code. Frag mal beim Modulprogrammierer direkt an, vielleicht hilft er/sie dir.
    Nichts ist so sicher, wie die Änderung.
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.337
    Beitragswertungen
    143 Beitragspunkte
    Ich kann Dir in einer Stunde das genau erklären, dann bin ich wieder am PC.
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    ZitatZitat geschrieben von Outi77
    Ich kann Dir in einer Stunde das genau erklären, dann bin ich wieder am PC.


    am besten baust du gleich ein modul zwinker wäre auch interessiert lächeln
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.337
    Beitragswertungen
    143 Beitragspunkte
    @holz
    Der war gut lachen

    Also zunächst mußt Du hier Deine Domain registrieren, dafür bekommst Du einen Website-Key und einen Security-Key.

    OK also für die Anzeige des Widgets fügst Du entweder in der index.htm Deines Designs (falls Du das Captcha überall einsetzen möchtest), oder in der entsprechenden htm-File (zb regist.htm) folgendes ein:
    <script type="text/javascript" src='https://www.google.com/recaptcha/api.js'></script>


    Innerhalb der Form, die submitted wird, dann noch das hier:
    <div class="g-recaptcha" data-sitekey="your_site_key"></div>


    Die php-seitige Auswertung könnte dann so aussehen (Bsp. regist.php):
    <?php
    $captcha = $_POST['g-recaptcha-response'];
    if (empty($name) OR empty($email) OR $name != $xname OR $ch_name == false OR !$captcha) {
        $title = $allgAr['title'] . ' :: Users :: Registrieren :: Step 2 von 3';
        $hmenu = $extented_forum_menu . '<a class="smalfont" href="?user">User</a><b> &raquo; </b><a class="smalfont" href="?user-regist">Registrieren</a><b> &raquo; </b>Step 2 von 3' . $extented_forum_menu_sufix;
        $design = new design($title, $hmenu, 1);
        $design->header();
        if (isset($_POST['register'])) {
            $response = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret="your-security-key"&response=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']);
            if ($response.success == false) {
                $fehler = '<h2>You are spammer ! Get the @$%K out</h2>';
            }
            if (empty($name) OR empty($email)) {
                $fehler = $lang['entereddataincomplete'];
            } elseif ($name != $xname) {
                $fehler = $lang['wrongnickname'];
            } elseif ($ch_name == false) {
                $fehler = $lang['namealreadyinuse'];
            }
        } else {
            $fehler = '';
        }
        $tpl = new tpl('user/regist');
        $tpl->set('name', $name);
        $tpl->set('email', $email);
        $tpl->set_out('FEHLER', $fehler, 1);
        if ($allgAr['forum_regist_user_pass'] == 1) {
            $tpl->out(2);
        }
    } else {
        # User registrieren
    }



    Zuletzt modifiziert von Outi77 am 27.04.2015 - 19:51:28
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    2 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Kasper Mitglied
    Registriert seit
    20.08.2015
    Beiträge
    3
    Beitragswertungen
    3 Beitragspunkte
    Ich hab' das auf unserer Site so gelöst (hatten bereits die alte recaptchalib.php mit ReCaptcha v1 im Einsatz):

    • Neue recaptchalib.php unter include/includes/func/ speichern: github.com/Laceratus/BTCFish/blob/master/recaptchalib.php
    • recaptchalib.php um folgende Methode ergänzen (ganz unten, außerhalb der ReCaptcha-Klasse):
      /**
       * Gets the challenge HTML.
       * This is called from the browser, and the resulting reCAPTCHA HTML widget
       * is embedded within the HTML form it was called from.
       * @param string $pubkey A public key for reCAPTCHA
       * @return string - The HTML to be embedded in the user's form.
       */
      function recaptcha_get_html ($pubkey)
      {
              if ($pubkey == null || $pubkey == '') {
                      die ("To use reCAPTCHA you must get an API key from <a href='https://www.google.com/recaptcha/admin/create'>https://www.google.com/recaptcha/admin/create</a>");
              }
      
              return '<script type="text/javascript" src="https://www.google.com/recaptcha/api.js"></script>'.'<div class="g-recaptcha" data-sitekey="'. $pubkey .'"></div>';
      }
    • includes/include/func/allg.php Methode chk_antispam editieren (entsprechende Stelle mit der if-Abfrage suchen):
      if ( ( $allgAr['recaptcha'] == 1 || $recaptcha === true ) && !empty($allgAr['recaptcha_public_key']) && !empty($allgAr['recaptcha_private_key']) ) {
      
        $privatekey = $allgAr['recaptcha_private_key'];
        $captcha = new ReCaptcha($privatekey);
        $resp = $captcha->verifyResponse($_SERVER["REMOTE_ADDR"], $_POST["g-recaptcha-response"]);
      
        return $resp->success;
      
      } else {
        [...]
      }


    Hoffe, ich hab' nix vergessen...


    Zuletzt modifiziert von Kasper am 21.08.2015 - 15:02:48
    1 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Plauder Ecke

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten