WordPress autologin с использованием CURL или fsockopen в PHP

Клиент хочет щелкнуть ссылку и автоматически войти в раздел администрирования WordPress.

Я пробовал использовать fsockopen, код ниже. Не работает.

$post_data['user_login'] = 'admin'; $post_data['user_pass'] = 'password'; $post_data['wp-submit'] = 'Log In'; $post_data['redirect_to'] = 'http://example.com/wp-admin/'; //traverse array and prepare data for posting (key1=value1) foreach ( $post_data as $key => $value) { $post_items[] = $key . '=' . $value; } //create the final string to be posted using implode() $post_string = implode ('&', $post_items); //we also need to add a question mark at the beginning of the string $post_string = '?' . $post_string; $data_length = strlen($post_string); $connection = fsockopen('www.example.com', 80); fputs($connection, "POST /wp-login.php HTTP/1.1\r\n"); fputs($connection, "Host: www.example.com \r\n"); fputs($connection, "Content-Type: application/x-www-form-urlencoded\r\n"); fputs($connection, "Content-Length: $data_length\r\n"); fputs($connection, "Connection: close\r\n\r\n"); fputs($connection, $post_string); fclose($connection); 

также попробовал CURL

 $ch = curl_init('http://example.com/wp-login.php'); $post_data['user_login'] = 'admin'; $post_data['user_pass'] = 'password'; $post_data['wp-submit'] = 'Log In'; $post_data['redirect_to'] = 'http://example.com/wp-admin/'; //$post_data['testcookie'] = '0'; //$post_data['rememberme'] = 'forever'; foreach ( $post_data as $key => $value) { $post_items[] = $key . '=' . $value; } //create the final string to be posted using implode() $post_string = implode ('&', $post_items); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string); curl_exec ($ch); curl_close ($ch); 

У кого-нибудь есть идея, как сделать эту работу?

Это ОС Linux. Запуск php5.

Я сделал это раньше, когда javascript просто отправил форму со всеми скрытыми входами при загрузке страницы. Клиент не хочет javascript

Это сработало для меня:

 $username="admin"; $password="admin"; $url="http://www.yourdomain.com/"; $cookie="cookie.txt"; $postdata = "log=". $username ."&pwd=". $password ."&wp-submit=Log%20In&redirect_to=". $url ."wp-admin/&testcookie=1"; $ch = curl_init(); curl_setopt ($ch, CURLOPT_URL, $url . "wp-login.php"); curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"); curl_setopt ($ch, CURLOPT_TIMEOUT, 60); curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie); curl_setopt ($ch, CURLOPT_REFERER, $url . "wp-admin/"); curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata); curl_setopt ($ch, CURLOPT_POST, 1); $result = curl_exec ($ch); curl_close($ch); echo $result; exit;