cURL n'a pas mis un biscuit plus, mais pourquoi?
Mon cURL script ne fonctionne pas plus (donc, gardez à l'esprit il fonctionnait avant) sur mon localhost (de sorte qu'il fonctionne sur mon ordinateur hôte externe, donc: il est peut-être les paramètres du serveur):
Ce script fonctionnait bien avant sur mon localhost (cela ne fonctionne toujours sur ma machine). Rien n'a changé.
- Peut-être le fait que j'ai couru ce script de plus de 3000 fois sur mon localhost est utile de le savoir.
- Je suis en cours d'exécution sur windows 7, l'utilisation de WampServer configuration de l'hôte.
- J'ai peut-être changé un paramètre, les effets de l'écriture de cookies. Mais lequel?
RÉEL PROBLÈME: cURL n'a pas de définir un cookie! Ce que les modules d'apache doit être allumé pour que l'écriture de cookies (dans une .fichier txt)? Je suis en cours d'exécution wampserver.
Veuillez noter que je suis déjà à l'aide de:
curl_setopt($curlTable, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($curlTable, CURLOPT_COOKIEFILE, 'cookie.txt');
Et que php.ini:
extension=php_curl.dll is uncommented
- Côté la question: Ne curl_close désactiver le cookie? Et si le cookiejar option n'est pas définie?
- Question principale: Pourquoi se complique pas curl écrire un cookie comme il devrait le faire (et sur mon ordinateur hôte externe, PAS sur mon LOCALHOST.
Autres informations:
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
:
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.
/var/log/apache/erreurs.journal que faut-il dire? Ou où que vous vous connectez. Activer l'affichage des erreurs PHP
Rien que ça... Pas d'erreurs.
Comment savez-vous cela ne fonctionne pas alors. Ce bit n'est pas de travail?
Elle retourne false, mais aucune erreur donné. Jetez un oeil à mon commentaire sur cette réponse: stackoverflow.com/a/8961232/574700.
Rien que ça... Pas d'erreurs.
Comment savez-vous cela ne fonctionne pas alors. Ce bit n'est pas de travail?
Elle retourne false, mais aucune erreur donné. Jetez un oeil à mon commentaire sur cette réponse: stackoverflow.com/a/8961232/574700.
curl_setopt($curl, CURLOPT_COOKIEFILE, 'cookies.txt');
est utilisé pour stocker des cookies.OriginalL'auteur SuperSpy | 2012-01-22
Vous devez vous connecter pour publier un commentaire.
Probablement vous a été interdit à la procédure de connexion. Cela vous donnera plus d'info sur le problème:
EDIT: quelques autres opt que vous pouvez essayer (SSL relatives à résolu mes problèmes plus qu'une fois):
EDIT 2: à la Suite de l'opt vous donnera les en-têtes de retour (à utiliser uniquement pour debug). En plus d'être sûr de la cookie.txt est utilisé correctement (repérable et accessible en écriture).
C'est tout ce que je peux contribuer à mes côtés. Maintenant lo déjeuner!
EDIT 3: Cookie choses liées:
EDIT 4: vérifiez Toujours présent au début:
Si vous recevez cette erreur, activer curl en
php.ini
de décommenter/retrait de l'avant;
et redémarrez le serveur web. Si vous n'avez pas trouvé cette ligne, alors vous devez installer curl:
Pour windows ou votre wampserver il doit être trop facile.
J'ai ajouté quelques idées. Je vous dis que je n'ai jamais perdu une bataille à l'aide de curl donc être persévérant. Bonne chance...
Tous ceux. N'a pas fonctionné. J'ai mis à jour ma question encore une fois.
À l'aide de
===
est correcte (ne pas modifier). si fonctionne avec==
signifie que le serveur ne retourne rien. C'est pourquoicurl_error
donne une chaîne vide (aucune erreur ne s'est produite). Jouer avec mon dernier suggestions. Assurez-vous que tout se passe OK.EDIT 3 fait. J'espère que toutes ces Modifications sont UTILES. Vous savez ce que je veux dire? 8) mmm?
OriginalL'auteur Igor Parra
Bien que cette question est dépassée, j'ai eu le même problème aujourd'hui et n'a pas à résoudre avec les suggestions ici. La raison pour laquelle les témoins n'ont pas été enregistrées était tout simplement le manque d'appel de
Si curl_close n'est pas appelé après que la demande curl les cookies ne sont PAS enregistrés.
M'a fallu environ une heure pour le trouver.... peut-être un gain de temps 🙂
OriginalL'auteur Alex2php
Il y a deux choses que je peux voir qui sont mal avec ce code:
Vous passez des noms de variables entre la création de la ressource et de l'exécuter:
Vous faites une requête post, mais n'a pas fixé un type de contenu, vous devez faire ceci:
Êtes-vous en mesure de fournir l'URL du site que vous essayez de l'accès afin que je puisse le tester moi-même?
OriginalL'auteur DaveRandom
Dans ma situation, il y a eu deux problèmes:
1) le Serveur n'a pas accepté cookie sans valeur
2) je n'ai pas utilisé CURLOPT_COOKIEFILE option
Chaque problème résout en le divisant sur des pièces distinctes et résoudre chacune d'elle par lui-même.
Donc, je vous recommande de diviser votre problème:
1) Vérifier est ce COOKIEFILE problème ou un site internet - envoyer la valeur de cookie directement, sans fichier peut être il y est de problème de serveur
2) Si ce sera ok - vérifier le contenu du fichier peut être il ya quelque chose de mal (comme dans mon cas)
OriginalL'auteur tigerxml