OsKaR
Zeta
Verificación en dos pasos activada
<?php
// campos personalizados registro
add_action('register_form','show_spam_field');
add_action('register_post','check_fields',10,3);
// añadimos campo spam
function show_spam_field(){
?>
<p>
<label>¿Cuanto es 15+2?<br />
<input id="spam" class="input" type="text" tabindex="20" size="25" value="<?php echo $_POST['spam']; ?>" name="spam"/>
</label>
</p>
<?php
}
// mostramos error si no coincide
function check_fields($login, $email, $errors) {
if ($_POST['spam'] !='17') {
$errors->add('empty_antispam', "<strong>ERROR</strong>: Introduce bien la pregunta de seguridad");
}
}
<?php
// campos personalizados registro
add_action('register_form','show_spam_field');
add_action('register_post','check_fields',10,3);
//Cambiar el numero 5 por otro numero asi no tienen el mismo que el tutorial!
$SUMANU = 5;
function encriptarcadena($X){
global $SUMANU;
$ZZ = "";
for($i=0;$i<strlen($X);$i++){
$TT = substr($X,$i,1);
$ZZ .=(ord($TT) - $SUMANU);
}
return $ZZ;
}
function desencriptarcadena($X){
global $SUMANU;
$ZZ = "";
for($i=0;$i<strlen($X);$i+=2){
$TT = substr($X,$i,2);
$ZZ .= chr($TT + $SUMANU);
}
return $ZZ;
}
// añadimos campo spam
function show_spam_field(){
$A = mt_rand(1,25);
$B = mt_rand(5,30);
?>
<p>
<label>¿Cuanto es <?=$A.'+'.$B;?>?<br />
<input id="spam" class="input" type="text" tabindex="20" size="25" value="" name="spam"/>
<input id="nospam_a" class="input" type="hidden" value="<?=encriptarcadena($A); ?>" name="spamA"/>
<input id="nospam_b" class="input" type="hidden" value="<?=encriptarcadena($B); ?>" name="spamB"/>
</label>
</p>
<?php
}
// mostramos error si no coincide
function check_fields($login, $email, $errors) {
$RES = (desencriptarcadena($_POST['spamA']) + desencriptarcadena($_POST['spamB']));
if ($RES != $_POST['spam'] ) {
$errors->add('empty_antispam', $RES."<strong>ERROR</strong>: Introduce bien la pregunta de seguridad");
}
}
que sea mas aleatorio:
PHP:<?php // campos personalizados registro add_action('register_form','show_spam_field'); add_action('register_post','check_fields',10,3); //Cambiar el numero 5 por otro numero asi no tienen el mismo que el tutorial! $SUMANU = 5; function encriptarcadena($X){ global $SUMANU; $ZZ = ""; for($i=0;$i<strlen($X);$i++){ $TT = substr($X,$i,1); $ZZ .=(ord($TT) - $SUMANU); } return $ZZ; } function desencriptarcadena($X){ global $SUMANU; $ZZ = ""; for($i=0;$i<strlen($X);$i+=2){ $TT = substr($X,$i,2); $ZZ .= chr($TT + $SUMANU); } return $ZZ; } // añadimos campo spam function show_spam_field(){ $A = mt_rand(1,25); $B = mt_rand(5,30); ?> <p> <label>¿Cuanto es <?=$A.'+'.$B;?>?<br /> <input id="spam" class="input" type="text" tabindex="20" size="25" value="" name="spam"/> <input id="nospam_a" class="input" type="hidden" value="<?=encriptarcadena($A); ?>" name="spamA"/> <input id="nospam_b" class="input" type="hidden" value="<?=encriptarcadena($B); ?>" name="spamB"/> </label> </p> <?php } // mostramos error si no coincide function check_fields($login, $email, $errors) { $RES = (desencriptarcadena($_POST['spamA']) + desencriptarcadena($_POST['spamB'])); if ($RES != $_POST['spam'] ) { $errors->add('empty_antispam', $RES."<strong>ERROR</strong>: Introduce bien la pregunta de seguridad"); } }
Lo que hace es sacar números aleatorios para la verificación humana, luego usando unas funciones de encriptacion y desencriptacion verificamos la suma (usamos esas funciones para ocultar de la vista los numeros que usaremos en la verificacion)
Utilizamos cookies y tecnologías similares para los siguientes fines:
¿Aceptas las cookies y estas tecnologías?
Utilizamos cookies y tecnologías similares para los siguientes fines:
¿Aceptas las cookies y estas tecnologías?