cURL ничего не возвращает?

<?php error_reporting(-1); $config = array ( "siteURL" => "http://domain.com", "loginCheck" => "checkuser.php", "userAgent" => "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16" ); $postFields = "username=user&password=pass&submit= Login "; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $config['siteURL'] . $config['loginCheck']); curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt"); curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_USERAGENT, config['userAgent']); curl_setopt($ch, CURLOPT_REFERER, config['siteURL']); $content = curl_exec($ch); curl_close($ch); echo $content; ?> 

Я ожидаю, что это будет отражать результат завитки, но его нет. я делаю что-то неправильно?

Related of "cURL ничего не возвращает?"

Он делает, если вы установите полный URL-адрес с «/» в конце (исправьте два других опечатка):

 error_reporting(-1); $config = array ( "siteURL" => "http://www.apple.com/", "loginCheck" => "checkuser.php", "userAgent" => "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16" ); $postFields = "username=user&password=pass&submit= Login "; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $config['siteURL'] . $config['loginCheck']); curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt"); curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_USERAGENT, $config['userAgent']); curl_setopt($ch, CURLOPT_REFERER, $config['siteURL']); $content = curl_exec($ch); curl_close($ch); echo $content; 

Две из ваших переменных называются плохо:

 curl_setopt($ch, CURLOPT_USERAGENT, config['userAgent']); curl_setopt($ch, CURLOPT_REFERER, config['siteURL']); 

Должно быть:

 curl_setopt($ch, CURLOPT_USERAGENT, $config['userAgent']); curl_setopt($ch, CURLOPT_REFERER, $config['siteURL']); 

Я предполагаю, что PHP ошибся на пустой странице (поскольку переменная рассматривается как константа, а константы должны быть скалярными).

Другой проблемой может быть пользовательский агент. Я видел серверы, которые полностью отказываются отвечать, если пользовательский агент не был установлен.

Вы можете использовать класс, который я написал, который обертывает CURL. Для установки см. https://github.com/homer6/altumo

Это намного проще в использовании и может дать вам легкую для доступа к отладке. Например:

 try{ //load class autoloader require_once( __DIR__ . '/loader.php' ); //you should ensure that is is the correct path for this file //make the response; return the response with the headers $client = new \Altumo\Http\OutgoingHttpRequest( 'http://www.domain.com/checkuser.php', array( 'username' => 'user', 'password' => 'pass', 'submit' => ' Login ' )); $client->setRequestMethod( \Altumo\Http\OutgoingHttpRequest::HTTP_METHOD_POST ); //send the request (with optional arguments for debugging) //the first true will return the response headers //the second true will turn on curl info so that it can be retrieved later $response = $client->send( true, true ); //output the response and curl info \Altumo\Utils\Debug::dump( $response, $client->getCurlInfo() ); //alternatively, you can get the response wrapped in an object that allows you to retrieve parts of the response $http_response = $client->sendAndGetResponseMessage( true ); $status_code = $http_response->getStatusCode(); $message_body = $http_response->getMessageBody(); $full_http_response = $http_response->getRawHttpResponse(); \Altumo\Utils\Debug::dump( $status_code, $message_body, $full_http_response ); }catch( \Exception $e ){ //This will display an error if any exceptions have been thrown echo 'Error: ' . $e->getMessage(); } 

Надеюсь, это поможет…