plugin math captcha – non controlla il numero inserito
-
Salve, sto facendo un plugin via tramite IA, ma tutte le IA, mi danno il solito codice alcune volte diverso.
Ma non capisco perché non funziona il controllo che se uno sbaglia mi dovrebbe darmi un messaggio di errore. vi incollo il codice, ma leggendo il codice vedo che ci sono i vari controlli e che non funzionano.. ho notato se c’è 5+2 e metto 394394 mi fa i login ma non mi da che ho sbagliato il calcolo.
avete idea?,
vi incollo il codice:
// Start a session if not already started
add_action('init', 'start_session', 1);
function start_session() {
if (!session_id()) {
session_start();
}
}
// Function to generate and display the Math CAPTCHA
function add_math_captcha() {
// Generate two random numbers
$digit1 = mt_rand(1, 20);
$digit2 = mt_rand(1, 20);
// Randomly choose between addition and subtraction
if (mt_rand(0, 1) === 1) {
$math = "$digit1 + $digit2";
$answer = $digit1 + $digit2;
} else {
$math = "$digit1 - $digit2";
$answer = $digit1 - $digit2;
}
// Store the correct answer in session
$_SESSION['math_captcha_answer'] = $answer;
// Display the CAPTCHA
echo "<p>Please solve the equation: <strong>$math</strong>";
echo "<input type='text' name='captcha_answer' required></p>";
}
// Hook the CAPTCHA into the login form
add_action('login_form', 'add_math_captcha');
// Hook the CAPTCHA into the registration form
add_action('register_form', 'add_math_captcha');
// Hook the CAPTCHA into the comment form
add_action('comment_form_after_fields', 'add_math_captcha');
// Hook the CAPTCHA into the forgot password form
add_action('lostpassword_form', 'add_math_captcha');
// Validate the CAPTCHA on form submission
function validate_math_captcha($user) {
if (isset($_POST['captcha_answer']) && $_POST['captcha_answer'] != $_SESSION['math_captcha_answer']) {
return new WP_Error('captcha_error', __('Invalid CAPTCHA. Please try again.'));
}
return $user;
}
// Hook the validation function into the login, registration, and forgot password processes
add_action('authenticate', 'validate_math_captcha', 1);
add_action('register_post', 'validate_math_captcha');
add_action('lostpassword_post', 'validate_math_captcha');
// Validate CAPTCHA for comments
add_action('pre_comment_on_post', 'validate_math_captcha_for_comments');
function validate_math_captcha_for_comments() {
if (isset($_POST['captcha_answer']) && $_POST['captcha_answer'] != $_SESSION['math_captcha_answer']) {
wp_die(__('Invalid CAPTCHA. Please go back and try again.'));
}
}Aspetto risposte nel frattempo vi auguro una buona fine settimana.
Stai visualizzando 1 risposte (di 1 totali)
Stai visualizzando 1 risposte (di 1 totali)
- Devi essere collegato per rispondere a questo topic.