2016-08-13 2 views
0

Я использую PHP локон для автоматического входа в WordPress панели, но код не работаетWordPress 4.5 автоматических Войти с PHP CURL

<?php 
$ch = curl_init(); 
$postData = array('log'=> 'admin', 
    'pwd' => '123', 
    'wp-submit' => '%D9%88%D8%B1%D9%88%D8%AF', 
    'redirect_to' => 'http://localhost/wp/wp-admin/', 
    'testcookie' => '1' 
); 
$cookie = basename('cookie.txt'); 
$opt = array(
    CURLOPT_URL => 'http://localhost/wp/wp-login.php', 
    CURLOPT_HEADER => 1, 
    CURLOPT_RETURNTRANSFER => true, 
    CURLOPT_POST => true, 
    CURLOPT_POSTFIELDS => $postData, 
    CURLOPT_FOLLOWLOCATION => true, 
    CURLOPT_COOKIESESSION => true, 
    CURLOPT_COOKIEJAR => $cookie, 
    CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0', 
    CURLOPT_COOKIEFILE => $cookie 
); 
curl_setopt_array($ch,$opt); 
$out = curl_exec($ch); 
echo $out; 
?> 

WordPress возврат Войти Панель:

ОШИБКИ: Cookies заблокирован или не поддерживается вашим браузером. Вы должны разрешить использование файлов cookie для использования WordPress.

Как исправить ошибку

ответ

0

Ваш Логин Функция:

function Login($data){ 
include_once($_SERVER['DOCUMENT_ROOT'].'/sbx/wp-config.php'); 
include_once($_SERVER['DOCUMENT_ROOT'].'/sbx/wp-load.php'); 
include_once($_SERVER['DOCUMENT_ROOT'].'/sbx/wp-includes/wp-db.php'); 
global $db; 
global $json; 

$credentials = array(); 

$secure_cookie=''; 

$username=$_POST['user_login']; 
$password=$_POST['user_pass']; 

if (!empty($_POST['remember'])) 
     $credentials['remember'] = true; 
    else 
     $credentials['remember'] = false; 

    $secure_cookie = apply_filters('secure_signon_cookie', $secure_cookie, $credentials); 

    global $auth_secure_cookie; 
    $auth_secure_cookie = $secure_cookie; 

    add_filter('authenticate', 'wp_authenticate_cookie', 30, 3); 

$user = wp_authenticate($username, $password); 

if (! is_wp_error($user)) 
{ 
    $json['success'] = true; 
    $json['data'] = $user; 

} else { 
    $json['success'] = false; 
    $json['data'] = "Please Wrong Username And Password."; 
} 

Ваш Curl Формат:

$curl = curl_init(); 
    curl_setopt($curl, CURLOPT_URL,"your_url"); 
    curl_setopt($curl, CURLOPT_POST, 1); 
    curl_setopt($curl, CURLOPT_POSTFIELDS, "user_login=dcm&user_pass=123456&api=Login"); 

    curl_exec ($curl); 
    curl_close ($curl); 
+0

Я использовал эту функцию для запуска API, который использует бэкэнд логин и после войдите в систему, вы можете перенаправить на нужный URL. –

+0

этот код не работает, Curl Can not Login, Cookie dosn't set – Eloit

Смежные вопросы