Я следовал за Wordpress с помощью CURL или fsockopen в PHP для входа в WordPress, используя php_curl, и он отлично работает, если я использую WAMP (apache / php).
Но когда дело доходит до IIS на выделенном сервере, он ничего не возвращает.
Я написал следующую функцию, которая отлично работает на моем локальном сервере, но при развертывании на выделенном клиентском сервере Windows 2k3 этого не происходит. Пожалуйста, помогите мне
function post_url($url, array $query_string)
{
//$url = http://myhost.com/wptc/sys/wp/wp-login.php
/* $query_string = array(
'log'=>'admin',
'pwd'=>'test',
'redirect_to'=>'http://google.com',
'wp-submit'=>'Log%20In',
'testcookie'=>1
);
*/
//temp_dir is defined as folder = path/to/a/folder
$cookie= temp_dir."cookie.txt";
$c = curl_init($url);
if (count($query_string))
{
curl_setopt ($c, CURLOPT_POSTFIELDS,
http_build_query( $query_string )
);
}
curl_setopt($c, CURLOPT_POST, 1);
curl_setopt($c, CURLOPT_COOKIEFILE, $cookie);
//curl_setopt($c, CURLOPT_SSL_VERIFYPEER, 1);
//curl_setopt($c, 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($c, CURLOPT_TIMEOUT, 60);
curl_setopt($c, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); //return the content
curl_setopt($c, CURLOPT_COOKIEJAR, $cookie);
//curl_setopt($c, CURLOPT_AUTOREFERER, 1);
//curl_setopt($c, CURLOPT_REFERER, wp_admin_url);
//curl_setopt($c, CURLOPT_MAXREDIRS, 10);
curl_setopt($c, CURLOPT_HEADER, 0);
//curl_setopt($c, CURLOPT_CRLF, 1);
try {
$result = curl_exec($c);
}
catch (Exception $e)
{
$result = 'error';
}
curl_close ($c);
return $result; //it return nothing (empty)
}
Другие факты
- curl_error ($ с); ничего не вернуть
- когда для заголовка CURLOPT_HEADER установлено значение ON,
возвращает этот заголовок
HTTP / 1.1 200
OK Cache-Control: без кеша,
must-revalidate, max-age = 0 Прагма:
Тип содержимого без кэширования: text / html;
charset = UTF-8 истекает: ср, 11 января
1984 05:00:00 GMT Последнее изменение:
Чт, 06 мая 2010 21:06:30 по Гринвичу
Сервер: Microsoft-IIS / 7.0
X-Powered-By: PHP / 5.2.13 Set-Cookie:
wordpress_test_cookie = РГ + печенье + проверка;
путь = / wptc / sys / wp / Set-Cookie:
wordpress_b13661ceb5c3eba8b42d383be885d372 =% администратор 7C1273352790% 7C7d8ddfb6b1c0875c37c1805ab98f1e7b;
Путь = / wptc / SYS / WP / WP-содержание / плагины;
httponly Set-Cookie: wordpress_b13661ceb5c3eba8b42d383be885d372 = admin% 7C1273352790% 7C7d8ddfb6b1c0875c37c1805ab98f1e7b;
Путь = / wptc / SYS / WP / WP-администратора; HttpOnly
Set-Cookie:
wordpress_logged_in_b13661ceb5c3eba8b42d383be885d372 =% администратор 7C1273352790% 7Cb90825fb4a7d5da9b5dc4d99b4e06049;
Путь = / wptc / SYS / в.ч. /; HttpOnly
Обновление:
0; URL = http://myhost.com/wptc/sys/wp/wp-admin/
X-Powered-By: ASP.NET Дата: чт, 06
Май 2010 21:06:30 по Гринвичу
Длина контента: 0
Информация о версии CURL:
Array ([version_number] => 463872 [age] => 3 [features] => 2717 [ssl_version_number] => 0 [version] => 7.20.0 [host] => i386-pc-win32 [ssl_version] => OpenSSL /0.9.8k [libz_version] => 1.2.3 [протоколы] => Массив ([0] => dict [1] => файл [2] => ftp [3] => ftps [4] => http [ 5] => https [6] => imap [7] => imaps [8] => ldap [9] => pop3 [10] => pop3s [11] => rtsp [12] => smtp [13] => smtps [14] => telnet [15] => tftp))
- PHP Версия 5.2.13
- Windows Server 2K3
- IIS 7
- Отлично работает на Apache, PHP 3.0 на моем локальном хосте (windows)