My cURL script does not work anymore (so keep in mind it DID work before) on my localhost (so it DOES work on my external host, hence: it might be the server settings):
This script worked fine before on my localhost (it still does on my host). Nothing changed.
- Maybe the fact that I’ve ran this script over 3000 times on my localhost is useful to know.
- I’m running on windows 7, using WampServer to setup a host.
- I might have changed a setting, which effects the writing of cookies. But which one?
REAL PROBLEM: cURL does not set a cookie! What apache modules should be ON for writing cookies (in a .txt file)? I’m running wampserver.
Please note I’m already using:
curl_setopt($curlTable, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($curlTable, CURLOPT_COOKIEFILE, 'cookie.txt');
And that php.ini is:
extension=php_curl.dll is uncommented
- Side question: Does curl_close unset the cookie? And if the cookiejar option is not set?
- Main question: Why doens’t curl write a cookie like it should do (and does on my external host, NOT on my LOCALHOST.
Other information:
phpinfo()
curl
cURL support enabled
cURL Information 7.21.7
Age 3
Features
AsynchDNS Yes
Debug No
GSS-Negotiate Yes
IDN No
IPv6 Yes
Largefile Yes
NTLM Yes
SPNEGO No
SSL Yes
SSPI Yes
krb4 No
libz Yes
CharConv No
Protocols dict, file, ftp, ftps, gopher,
http, https, imap, imaps, ldap, pop3,
pop3s, rtsp, scp, sftp, smtp, smtps, telnet, tftp
Host i386-pc-win32
SSL Version OpenSSL/0.9.8r
ZLib Version 1.2.5
libSSH Version libssh2/1.2.7
Currently using:
preg_match('/name="csrf" value="(.*?)"/', $getTokenCurlData, $token);
$postFields = array(
'user' => $userNum,
'paswoord' => $userPass,
'login' => 'loginform',
'csrf' => $token[1]);
// 'user='.$userNum.'&paswoord='.$userPass.'&login=loginform&csrf='.$token[1]
$postData = http_build_query($postFields);
$curlTable = curl_init();
curl_setopt($curlTable, CURLOPT_URL, 'link');
curl_setopt($curlTable, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($curlTable, CURLOPT_COOKIEFILE, 'cookie.txt');
curl_setopt($curlTable, CURLOPT_ENCODING, 'gzip');
curl_setopt($curlTable, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curlTable, CURLOPT_POST, true);
$tableData = curl_exec($curlTable);
if (!$tableData) echo 'post problem?'.$tableData;
if ($tableData == false)
{
echo 'Curl error: ' . curl_error($curlTable);
}
curl_close($curlTable);
// Here I further process my data.
Probably you was banned at the login process. This will give you more info about the problem:
EDIT: some other opt that you can try (SSL related solved my problems more that one time):
EDIT 2: Following opt will give you the headers returned (use only to debug). Besides be sure about the cookie.txt is being used properly (locatable and writable).
That’s all I can contribute by my side. Now lo lunch!
EDIT 3: Cookie related stuff:
EDIT 4: Always check this at the beginning:
If you receive this error, activate curl in
php.iniuncommenting/removing the front;and restart the web server. If you do not found this line then you need install curl:
For windows or your wampserver it must be easy too.