Jump to content
  • Sky
  • Blueberry
  • Slate
  • Blackcurrant
  • Watermelon
  • Strawberry
  • Orange
  • Banana
  • Apple
  • Emerald
  • Chocolate
  • Charcoal
Miguel92

Actualizar Recaptcha V.1 a Recaptcha V.2

Recommended Posts

Actualizar Recaptcha V.1 a Recaptcha V.2

(con consultas y administración de claves)

 

ReCaptcha v.2 (Por: @Kmario19) para generar/crear dichas claves mirá el topic de abajo
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓

↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ 

 

1 - Realizamos esta consultas

ALTER TABLE `w_configuracion` ADD `publickey` VARCHAR(80) NOT NULL AFTER `url`, ADD `privatekey` VARCHAR(80) NOT NULL AFTER `publickey`;

 

2 - Buscamos en inc/class/c.admin.tpl y buscamos 

            'url' => $tsCore->setSecure($tsCore->parseBadWords($_POST['url'])),


y debajo pegamos

            'publickey' => $tsCore->setSecure($_POST['publickey']),
            'privatekey' => $tsCore->setSecure($_POST['privatekey']),

luego un poco más abajo buscamos 
  

 // UPDATE
        if (db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE `w_configuracion` SET `titulo` = \'' . $c['titulo'] . '\', `slogan` = \'' .
            $c['slogan'] . '\', `url` = \'' . $c['url'] . '\',

y a lado agregamos

    `publickey` = \'' . $c['publickey'] . '\',  `privatekey` = \'' . $c['privatekey'] . '\',

 

3 - Buscamos en inc/class/c.registro.php y borramos en las líneas 63 y 64

            'user_captacha_challenge' => $_POST['recaptcha_challenge_field'],
            'user_captacha_response' => $_POST['recaptcha_response_field'],


más abajo buscamos

        // CAPTACHA
        require(TS_EXTRA . 'recaptchalib.php');
        $robot = recaptcha_check_answer(RC_PIK,$_SERVER["REMOTE_ADDR"],$tsData['user_captacha_challenge'],$tsData['user_captacha_response']);
        if(!$robot->is_valid) return 'recaptcha: El código es incorrecto.';

y la reemplazamos por [Elimina el archivo recaptchalib.php]

/** reCAPTCHA [de la versión 1.3.0.000] **/
        $recaptcha = 'https://www.google.com/recaptcha/api/siteverify?secret=' . $tsCore->settings['privatekey'] . '&response=' . $tsData['user_captcha'] . '&remoteip=' . $tsCore->getIP();
        // Obtener respuesta
        $response = file_get_contents($recaptcha);
        // Extraer resultado
        $ext1 = explode('"success":', $response);
        $ext2 = explode(',', $ext1[1]);
        // Comprobar resultado
        $valid = trim($ext2[0]);
        // Devolver respuesta si es incorrecta
        if ($valid == 'false') {
            return 'recaptcha: Demuestra que no eres un robot! XD';
        }

4 - Ahora iremos a default/templates/admin_mods/m.admin_configs.tpl y buscamos

                                        <dl>
                                            <dt><label for="ai_url">Dirección del sitio:</label></dt>
                                            <dd><input type="text" id="ai_url" name="url" maxlength="32" value="{$tsConfig.url}" /></dd>
                                        </dl>

y debajo pegamos

                                        <hr />
                                        <dl>
                                            <dt><label for="ai_publickey" class="col-sm-4 col-form-label">Key de recaptcha publica:</label></dt>
                                            <dd><input type="text" class="form-control" id="ai_publickey" name="publickey" maxlength="50" value="{$tsConfig.publickey}"></dd>
                                        </dl> 
                                        <dl>
                                            <dt><label for="ai_privatekey" class="col-sm-4 col-form-label">Key de recaptcha privada:</label></dt>
                                            <dd><input type="text" class="form-control" id="ai_privatekey" name="privatekey" maxlength="50" value="{$tsConfig.privatekey}"></dd>
                                        </dl> 
                                        <hr>


5 - Ahora en default/templates/t.php_files.tpl buscamos

        <div class="form-line">
            <label for="recaptcha_response_field">Ingresa el código de la imagen:</label>

            <div id="recaptcha_ajax">
                <div id="recaptcha_image"></div>
                <input type="text" id="recaptcha_response_field" name="recaptcha_response_field" />
            </div> <div class="help recaptcha"><span><em></em></span></div>
        </div>

y la reemplazamos por

        <div class="form-line">
            <label>Demuestra que no eres un robot:</label>
            <div class="g-recaptcha" data-sitekey="{$tsConfig.publickey}"></div>
            <div class="help"><span><em></em></span></div>
        </div>


luego más abajo buscamos y la borramos

//Load recaptcha
$.getScript("http://www.google.com/recaptcha/api/js/recaptcha_ajax.js", function(){
    Recaptcha.create('6LcXvL0SAAAAAPJkBrro96lnXGZ56TBRExEmVM3L', 'recaptcha_ajax', {
        theme:'white', lang:'es', tabindex:'13', custom_theme_widget: 'recaptcha_ajax',
        callback: function(){
            $('#recaptcha_response_field').blur(function(){
                registro.blur(this);
            }).focus(function(){
                registro.focus(this);
            }).attr('title', 'Ingrese el código de la imagen');
        }
    });
});

Arriba de

<script type="text/javascript">
$.getScript("{$tsConfig.js}/registro.js{literal}", function(){

Agregaremos

<script src="https://www.google.com/recaptcha/api.js" async defer></script>

Luego deben ir a

 

Editado por Miguel92
Nuevo arreglo del recapcha v2

Compartir este post


Enlace al post
Compartir en otros sitios

  • Similar Content

    • Por kiko
      "Hola Tengo este problema como lo soluciono gracias ... error para el propietario del sitio web recaptcha Mi web es esta               masdescarga.xyz
       
       
       
       

    • Por Miguel92
      SUSPENDIDO HASTA NUEVO AVISO
      no usar
       
      Estado de pruebas recientes:
      * Localhost funciona perfectamente
      * Servidores no registra a los usuarios
       
      He subido recientemente en 2 demos
      http://phpostrisus.myartsonline.com/ y en http://demostracioneswebs.000webhostapp.com/
      Ambas fracasaron, o tal vez son los servidores!

      =============================================================================================
      Bueno este es el mini-registro!

       
      Les dejaré 3 modos, para evitar el problema deben tener (Hacer hasta el paso 2)
       
      MODO 1: registro.js y p.registro.form.tpl
      Descargar Modo 1
       
      MODO 2: c.registro[por @Kmario19], recaptchalib.php, registro.js y p.registro.form.tpl
      Descargar Modo 2
       
      MODO 3: c.registro[fix de @Rengo], registro.js y p.registro.form.tpl
      Descargar Modo 3
       
      Aun no lo he probado en algún servidor!
       
      Cualquier problema avisarme!
    • Por Kmario19
      Hola gente tal vez muchos de nosotros nos hemos topado con este tipo de captcha en alguna web, blog o foro:

      Pues, les enseño a como instalarlo en su script:
      1. Registrar un sitio para usar la aplicación, aquí nos aseguraremos desde qué dominios se usará el captcha para hacerlo bien seguro. https://www.google.com/recaptcha/admin#list

      Colocar un título, los dominios donde usarás el captcha y uno o varios correos a los cuales se enviaran alertas si algo sospechoso ocurre en su web al usar el captcha.
      Luego de registrar interesa conservar las claves del sitio como estas:

      2. En el archivo inc/class/c.registro.php buscar y eliminar:
      'user_captacha_challenge' => $_POST['recaptcha_challenge_field'], 'user_captacha_response' => $_POST['recaptcha_response_field'], Mas abajo buscar:
      $robot = recaptcha_check_answer(RC_PIK,$_SERVER["REMOTE_ADDR"],$tsData['user_captacha_challenge'],$tsData['user_captacha_response']); if(!$robot->is_valid) return 'recaptcha: El c&oacute;digo es incorrecto.'; Reemplazar por:
      $secret = "AQUI TU CLAVE SECRETA"; $robot = new ReCaptcha($secret); $robot->verifyResponse($_SERVER["REMOTE_ADDR"], $_POST['g-recaptcha-response']); if(!$robot->success) return 'recaptcha: Hey que pasa? Demuestra que no eres un robot!'; En la variable $secret colocar la clave secreta que se creó en el paso anterior.
      3. Descargar y reemplazar el archivo inc/ext/recaptchalib.php:
      https://www.dropbox.com/s/ogmi26w0g8krnwb/recaptchalib.php?dl=0
      4. En el archivo js/registro.js buscar:
      case 'recaptcha_challenge_field': return true; break; case 'recaptcha_response_field': //Si ya paso por aca y no hubieron cambios, devuelvo el mismo status if(!force_check && this.datos[campo] === value && this.datos['recaptcha_challenge_field'] == $('#RegistroForm .pasoDos #recaptcha_challenge_field').val()) if(this.datos_status[campo]=='empty') return no_empty ? this.show_status(el, this.datos_status[campo], this.datos_text[campo]) : this.hide_status(el, this.datos_status[campo], this.datos_text[campo]); else return this.show_status(el, this.datos_status[campo], this.datos_text[campo]); //Almaceno el dato this.datos[campo] = value; this.datos['recaptcha_challenge_field'] = $('#RegistroForm .pasoDos #recaptcha_challenge_field').val(); //!empty if(empty(value)){ var status = 'empty'; var text = 'El campo es requerido'; if(no_empty) return this.show_status(el, status, text); else return this.hide_status(el, status, text); } return registro.show_status(el, 'ok', 'OK'); break; Reemplazar por:
      case 'g-recaptcha-response': this.datos[campo] = value; //!empty if(!value){ return this.show_status($('#RegistroForm .g-recaptcha'), 'empty', 'Demuestra que no eres un robot'); } return registro.show_status($('#RegistroForm .g-recaptcha'), 'ok', 'OK'); break; Mas abajo buscar:
      registro.datos['recaptcha_response_field'] = ''; Recaptcha.reload('t'); Reemplazar por:
      registro.datos['g-recaptcha-response'] = ''; grecaptcha.reset(); Mas abajo buscar:
      registro.show_status($('#RegistroForm #recaptcha_response_field'), 'error', h.substring(strpos(h, ':')+2)); Reemplazar por:
      registro.show_status($('#RegistroForm .g-recaptcha'), 'error', h.substring(strpos(h, ':')+2)); 5. En el archivo templates/t.php_files/p.registro.form.tpl.php buscar:
      <div class="form-line"> <label for="recaptcha_response_field">Ingresa el c&oacute;digo de la imagen:</label> <div id="recaptcha_ajax"> <div id="recaptcha_image"></div> <input type="text" id="recaptcha_response_field" name="recaptcha_response_field" /> </div> <div class="help recaptcha"><span><em></em></span></div> </div> Reemplazar por:
      <div class="form-line"> <label>Demuestra que no eres un robot:</label> <div class="g-recaptcha" data-sitekey="AQUI TU CLAVE DEL SITIO"></div> <div class="help"><span><em></em></span></div> </div> En el atributo data-sitekey colocar la clave del sitio que se creó en el paso #1.
      Mas abajo buscar:
      $.getScript("http://www.google.com/recaptcha/api/js/recaptcha_ajax.js", function(){ Recaptcha.create('6LcXvL0SAAAAAPJkBrro96lnXGZ56TBRExEmVM3L', 'recaptcha_ajax', { theme:'custom', lang:'es', tabindex:'13', custom_theme_widget: 'recaptcha_ajax', callback: function(){ $('#recaptcha_response_field').blur(function(){ registro.blur(this); }).focus(function(){ registro.focus(this); }).attr('title', 'Ingrese el c&oacute;digo de la imagen'); } }); }); Reemplazar por:
      $.getScript("https://www.google.com/recaptcha/api.js?hl=es"); Y listo, eso es todo lo que hay que hacer, les quedará algo como esto:


      Espero les haya gustado, sobretodo a Rengo que sufrió un poco instalando el captcha, que te sirva. Nos vemos en otro aporte 
       
       
  • Navegando Recientemente   0 miembros

    No registered users viewing this page.

  • Patrocinador



  • ×