Login remoto en WordPress con PHP y curl

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram
Share on email

Recientemente he tenido la necesidad de crear un programa en PHP capaz de autentificarse en WordPress automáticamente y acceder a una página interna de administrador. Para ello, utilicé el siguiente código:

<?php

function curl_get_wp_login( $login_user, $login_pass, $login_url, $visit_url, $http_agent, $cookie_file ){

if( !function_exists( ‘curl_init’ ) || ! function_exists( ‘curl_exec’ )){
$m = «Curl no disponible en tu servidor de PHP»;
echo $m;
}

// Enviando los datos de POST
$data = «log=». $login_user .»&pwd=» . $login_pass . «&wp-submit=Log%20In&redirect_to=» . $visit_url;

// Iniciamos curl
$ch = curl_init();

//URL de login
curl_setopt( $ch, CURLOPT_URL, $login_url );

// Habilitamos cookies
curl_setopt( $ch, CURLOPT_COOKIEJAR, $cookie_file );

// No usamos SSL
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );

// User agent
curl_setopt( $ch, CURLOPT_USERAGENT, $http_agent );

// Definimos un timeout para la petición
curl_setopt( $ch, CURLOPT_TIMEOUT, 60 );

curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1 );

// Devolvemos la respuesta
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );

// Configuramos la transferencia HTTP
curl_setopt( $ch, CURLOPT_REFERER, $login_url );

// Configuramos los campos POST a enviar
curl_setopt( $ch, CURLOPT_POSTFIELDS, $data );
curl_setopt( $ch, CURLOPT_POST, 1);

// Almacenamos la respuesta
$content = curl_exec ($ch);

/*
** Si necesitamos visitar otra URL, la configuramos aquí
** curl_setopt( $ch, CURLOPT_URL, ‘Nueva URL’ );
** $content = curl_exec ($ch);
*/

// Cerramos la petición curl
curl_close( $ch );

// Podemos imprimir el resultado de la petición
echo $content;
}

//Ahora utilizamos la función

// Username for login
$login_user = «Admin»;

/*
** Password for this username
*/
$login_pass = «Mi_contraseña_secreta»;

/*
** Login url address.
*/
$login_url = «https://puerto53.com/wp-login?jetpack-sso-show-default-form=1»;

// URL a visitar después del login
$visit_url = urlencode( ‘https://puerto53.com/wp-admin/edit.php’ );
$cookie_file = «/tmp/cookie.txt»;

/*
** Configuramos el user agent.
*/
$http_agent = «Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6»;

// Ejecutamos la petición de acceso y visita de la URL después del login
curl_get_wp_login( $login_user, $login_pass, $login_url, $visit_url, $http_agent, $cookie_file );

?>

¿Te ha gustado? ¡Compártelo!

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram
Share on email

SUSCRÍBETE A PUERTO53

Recibe un email periódico con los artículos más interesantes de Puerto53.com

Antes de suscribirte lee los términos y condiciones. Gracias.

Contenido Relacionado

Artículos Recientes

Deja un comentario

About Author