views:

1288

answers:

2

I'm implementing one project using PHP, in that I want to login into a page automatically . The code is below.

$ch = curl_init();
$postdata="Email=$username&Passwd=$password&continue=https://www.mail.google.com";
curl_setopt ($ch, CURLOPT_URL,"https://www.google.com");
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, $gacookie);
curl_setopt ($ch, CURLOPT_COOKIEFILE, $gacookie);
curl_setopt ($ch, CURLOPT_REFERER, 'https://www.google.com');
curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt ($ch, CURLOPT_POST, 1);
$AskApache_result = curl_exec ($ch);
curl_close($ch);
echo $AskApache_result;
unlink($gacookie);
?>

But it won't work. Any ideas?

+5  A: 

First of all: "it won't work" does not give us much information and context to help you solving the problem.

To get your questions answered, please try to supply details, for example:

  • What specific part is not working?
  • Do you get any error messages?
  • What operating system does you code run on?

It also helps to use a more descriptive question title. "PHP and CURL" does not give us much relevant information, whereas "How to solve error x123 when executing a CURL request" would be much more helpful.

Anyway. Looking at your code, there's at least one error:

curl_setopt ($ch, CURLOPT_REFERER, 'https://www.google.com");

should be:

curl_setopt ($ch, CURLOPT_REFERER, "https://www.google.com");

Clarification: the third parameter starts with a single quote and ends with a double quote.

Aron Rotteveel
I might be insanely blind, but I completely fail to spot the difference between those two lines of code
eliego
In the error, the third parameter starts with a single quote and ends with a double quote mark.
Aron Rotteveel
it even shows up clearly when you look at he code posted. It goes brown (as quoted text from 'https://www.google.com"); to the end of the example. Even the SO parser is missing closing quote here
kristof
A: 

curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);

Is the most likely problem, option is disabled on most shared (& free) web hosts because it poses a security risk.

BPatter