Solo necesito respuestas de PHP.
Configuración: Servidor Apache y PHP versión 7.4.
Estoy trabajando en un complemento CAPTCHA para WordPress. Con ese propósito, pensé en validar el campo CAPTCHA antes de validar cualquier otra solicitud.
Esto significa que quiero realizar la solicitud CAPTCHA POST antes de que se complete cualquier otro $_REQUEST.
Estas otras solicitudes pueden ser múltiples y no podré manejar sus scripts.
Pensé que detectaría si se había realizado una solicitud POST o GET, y luego quizás llamar a sleep() y realizar mi POST mientras tanto.
El problema es: sleep () pausa todo el script, mientras que solo quiero que se pausen las otras solicitudes POST y GET ...
if ($_SERVER['REQUEST_METHOD'] === 'POST' OR $_SERVER['REQUEST_METHOD'] === 'GET' AND $_POST["myRequest"]) { // Pause every POST and GET requests apart from $_POST["myRequest"] until $_POST["myRequest"] is performed } else { continue; }Puede usar la sesión y realizar un seguimiento de la solicitud y guardar la solicitud si $_POST['myRequest'] no está presente, luego cargue la solicitud anterior de la sesión o un archivo. Me gusta esto:
<?php session_start(); if ($_SERVER['REQUEST_METHOD'] === 'POST' OR $_SERVER['REQUEST_METHOD'] === 'GET') { // POST myRequest has been done before if(isset($_SESSION['.my-request.lock'])) { // If present remove it unset($_SESSION['.my-request.lock']); if(isset($_SESSION['my-data.json'])) { $my_prev_request = json_decode( $_SESSION['my-data.json'] ); unset($_SESSION['my-data.json']); } // Process other requests } else { if(isset($_POST['myRequest'])) { $_SESSION['.my-request.lock'] = true; // Do your own thing } else { // No myRequest and no file, save request data to load it after POST myRequest $_SESSION['my-data.json'] = json_encode( $_REQUEST ); } } } else { // Display Error ? continue; }