Script de test Curl

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Script de test Curl

Re: Script de test Curl

par @rthur » 18 août 2014, 11:34

Bonjour,

Pour t'aider à débuguer, mon conseil est que tu installes Wireshark sur ta machine pour voir ce qui se passe au niveau des appels réseau car sans messages d'erreurs ni traces réseau, c'est difficile de trouver le problème. C'est comme un médecin à qui tu dirais que tu es malade mais sans réussir à donner de symptômes ;)

A vu de nez pour ton problème, je dirai que tu devrais activer CURLOPT_FOLLOWLOCATION car il me semble que Facebook force une redirection en https par défaut.

Par contre pour avoir déjà essayé de développer un système similaire, je te déconseille fortement de faire du curl sur Facebook car c'est extrêmement complexe et FB fait tout pour l'empêcher. Notamment si tu n'arrives pas à reproduire à la perfection ta machine actuelle (avec cookie et autres), il va penser que tu es sur une nouvelle machine et va par mesure de sécurité te proposer des photos de tes amis pour valider que c'est bien toi et là, c'est mort avec Curl.

Re: Script de test Curl

par vdesjardins » 13 août 2014, 15:37

En fait j'utilise l'API de Facebook dans mon script principal, mais le problème c'est que FB ne permet plus de faire ce que je veux faire - pourtant rien d'extraordinaire hein - alors du coup j'essaie d'une autre façon.

Je vais essayer en effet avec une autre page, pour voir ce qui se passe.
Merci.

Re: Script de test Curl

par moogli » 12 août 2014, 17:27

Salut,

A ta place je M'orienterais vers l'api developer Facebook https://developers.facebook.com/docs

Il y a tous ce qu'il faut la dedans normalement.

Pour le reste est çe que le niveau d'erreur est bien a E_ALL (error_reporting).
Est ce qu'il y a des erreurs dans les fichiers de logs de httpd ou php ?
Peux tu faire ce genre de chose sur une autre page (par exemple sur ton serveur local histoire de limiter le problème de fire wall).

Tu peux aussi "snifer" les paquets réseau pour voir ce qui passe (par exemple avec un outil colle wireshark).


@+

Re: Script de test Curl

par JFPetitjean » 12 août 2014, 10:41

tu es sur que tu as bien activé curl sur le serveur?

Re: Script de test Curl

par toytoy » 12 août 2014, 01:18

Je découvre curl, mais en regardant la doc attentivement, parfois il y a des fourberies :? (c'est déjà arriver pour ma part :mrgreen: )

Re: Script de test Curl

par vdesjardins » 12 août 2014, 00:42

Non, en fait curl_error ne retourne pas 0, la fonction semble ne rien retourner du tout - puisque rien ne s'affiche...

Mon code est pourtant hyper basique, je ne comprends pas ce qui peut bien se passer, ça me prend la tête... Il n'y aurait pas un spécialiste curl dans le coin ?! ;-)

Re: Script de test Curl

par xTG » 18 juil. 2014, 18:34

Et curl_errno te retourne-t-elle 0 ?

Re: Script de test Curl

par vdesjardins » 18 juil. 2014, 17:34

Oui c'est bien activé.
D'ailleurs je pense que j'aurais eu une erreur dès curl_init si ce n'avait pas été le cas.
Mais j'ai quand même vérifié avec phpinfo et oui, c'est activé.
Pour info, j'utilise wamp - je ne sais pas si ça peut avoir un rapport avec le problème que je rencontre...

Re: Script de test Curl

par xTG » 18 juil. 2014, 17:21

Est-ce que curl est activé sur ton serveur ? (tu peux le voir avec la commande phpinfo())

Script de test Curl

par vdesjardins » 18 juil. 2014, 17:13

Bonjour,

Je suis en train de faire un petit script de test qui me servira dans un script plus "important" sur lequel je travaille.
Là j'essaie simplement de me connecter dans Facebook et d'afficher la page d'accueil.
Souci: j'ai un problème dès le début du script.

Le voici:
<?php
$lien = 'http://www.facebook.com/';
$postfields = array(
	'email' => 'MON_MAIL',
	'pass' => 'MON_PASS',
);
$path_cookie = 'connexion_facebook_temporaire.txt';
if (!file_exists(realpath($path_cookie))) touch($path_cookie);

$curl = curl_init();
if ($curl==false) {echo "<br>ERREUR curl_init : ".curl_error($curl); exit();}

curl_setopt($curl, CURLOPT_URL, $lien);
curl_setopt($curl, CURLOPT_COOKIESESSION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $postfields);
curl_setopt($curl, CURLOPT_COOKIEJAR, realpath($path_cookie));

$return = curl_exec($curl);
if ($return==false) {echo "<br>ERREUR curl_exec : ".curl_error($curl); exit();}
else {echo "<br>Exécution Curl OK";}
curl_close($curl);
Je n'ai pas mis la suite du code car ce que j'obtiens c'est:
ERREUR curl_exec :

En gros je vois qu'il y a une erreur suite à l'appel de curl_exec mais je ne sais pas ce que c'est...

Je ne comprends pas ce qui se passe, ça me semble pourtant simple... A votre avis, quel peut-être le souci ?