Pregunta sobre Developing with WordPress de Wordpress:

Error de REST de salud del sitio de WordPress despu茅s de iniciar start_session

Un usuario pregunt贸 馃憞

Tengo una aplicaci贸n php que no es de WP que requiere _SESSION y estoy enviando informaci贸n desde WP a esa aplicaci贸n a trav茅s de _SESSION. Estoy emitiendo start_session en WP a trav茅s de lo siguiente:

add_action(鈥榠nit鈥, 鈥榬egister_my_session鈥);
function register_my_session(){
if( ! session_id() ) {
session_start();
}
}

Todo parece funcionar muy bien excepto por una cosa. Cuando miro WP Tools> Site Tools, veo un error

** Se produjo un error en la API REST La API REST es una forma de que WordPress y otras aplicaciones se comuniquen con el servidor. Un ejemplo es la pantalla del editor de bloques, que se basa en esto para mostrar y guardar sus publicaciones y p谩ginas.

La solicitud de la API REST fall贸 debido a un error. Error: cURL error 28: la operaci贸n se ejecut贸 despu茅s de 10001 milisegundos y se recibieron 0 bytes (http_request_failed)

**

Si solo uso la llamada session_start (), el error desaparece (pero, por supuesto, los datos de $ _SESSION no est谩n disponibles).

Intent茅 mover session_start a wp-config e intent茅 moverlo antes / despu茅s en el orden de activaci贸n de los wp hooks, pero hasta ahora no he tenido suerte.

驴Alguien puede dar una idea de por qu茅 session_start cometi贸 un error REST e ideas sobre c贸mo llamar correctamente a session_start para acceder a $ _SESSION?

(@bcworkz)

Hace 8 meses, 2 semanas

Los errores atemporales generalmente significan que se ha creado un bucle infinito en alguna parte. No estoy seguro de c贸mo suceder铆a eso cuando inicia una sesi贸n, pero una solicitud REST est谩 iniciando una sesi贸n que no requiere su solicitud REST a pesar de verificarla session_id(). Tambi茅n intente comprobar si REST_REQUEST se define una constante (de la llamada 芦init禄) antes de iniciar una sesi贸n.

(@normsash)

Hace 8 meses, 2 semanas

Gracias por la ayuda. Adem谩s, alguien me se帽al贸 este rastreador de ediciones https://core.trac.wordpress.org/ticket/47320.

Parece que tengo la misma pregunta que tengo. Desafortunadamente, el n煤cleo del WP parece ‘b谩sicamente no arreglar’, aparte de modificar el mensaje de error que se muestra para decir que session_start puede afectar a REST.

Veo el posible uso de session_write_close (). Esto puede llevar alg煤n tiempo para reactivar el c贸digo para la incorporaci贸n. Ahora puedo abrir la sesi贸n antes de cualquier salida http y luego usar $ _SESSION seg煤n sea necesario. Con este cambio, creo que tendr茅 que abrir / cerrar una sesi贸n cada vez que acceda, pero tambi茅n tengo que asegurarme de que no se realice ninguna salida http.

Tambi茅n mirar茅 REST_REQUEST y ver茅 si eso me ayuda a solucionar el problema.

(@normsash)

Hace 8 meses, 2 semanas

Solo para que conste, agregu茅 el siguiente c贸digo en el plugin y, hasta ahora, parece estar funcionando. Deshacerse del error de la API REST鈥

add_action('init', 'start_my_session');
function start_my_session() {
	if (session_status() == PHP_SESSION_NONE) {
		session_start();
	}
}

add_action('wp_loaded', 'close_my_session', 30);
function close_my_session() {
	if (session_status() == PHP_SESSION_ACTIVE) {
		session_write_close();;
	}
}

(@matheusfastcom)

Hace 7 meses, 3 semanas

@normsash Tu c贸digo resolvi贸 un problema similar que tuve con un plugin personalizado.

驴Solucion贸 tu problema??

0 / 0

Deja una respuesta 0

Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *