Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

cURL not returning anything?

Tags:

php

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;

?>

I expect this to be echoing the result of the curl, but its not. am I doing anything wrong?

like image 467
Rob Avatar asked Dec 13 '22 13:12

Rob


2 Answers

It does, if you set a complete URL with a '/' at the end (fix two other typos):

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;
like image 129
SteAp Avatar answered Jan 02 '23 03:01

SteAp


If curl doesn't return anything then you have to check for the reason why that happen. Check for the last curl error message:

if(curl_exec($ch) === false)
{
    echo 'Curl error: ' . curl_error($ch);
}
else
{
    echo 'Operation completed without any errors, you have the response';
}

Basically it would be good to always check on that. You shouldn't assume that curl request succeeded.

like image 35
MilanG Avatar answered Jan 02 '23 02:01

MilanG