Curl identification https

Signaler
Messages postés
40
Date d'inscription
jeudi 22 décembre 2005
Statut
Membre
Dernière intervention
11 juin 2007
-
Messages postés
18
Date d'inscription
mardi 29 avril 2008
Statut
Membre
Dernière intervention
17 janvier 2009
-
Bonjour;
Bon je post un nouveau sujet  parce que là je ne sais plus quoi faire.
Je dois récupérer des données sur une page https, sauf que pour accéder à cette page il faut être identifier.
Le truc c'est que le lien qui va appeler mon script va se trouver sur la page sur laquelle je dois récupérer mes données.
Je precise que j'utilise curl et que j'ai deja une fonction qui arrive à recupérer la page d'identification, pour les autres bien evidament le serveur me jette et me demande de m'identifier
Alors questions:
   -Comment faut-il que je fasse pour envoyer mon login et mot de passe au serveur?
   ou mieux
   -N est t il pas possible de se servir du cookie de la session en cour pour que mon script puisse acceder directement à la page sur laquelle je veux recuperer mes données?

Je ne suis pas trop sur d'avoir été clair, si vous voulez plus de precisions faites moi signe.
Pitié j'ai vraiment besoin que l'on m'aide, merci d'avance.
A voir également:

21 réponses

Messages postés
591
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
16 juillet 2009
2
Messages postés
591
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
16 juillet 2009
2
Saell og blesuð


Vous pouvez essayer ceci:


$url = "https://domain.ltd/requete";
$ch = curl_init();   
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_USERAGENT,"Mozilla/4.0");
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,true);
curl_setopt($ch, CURLOPT_USERPWD, "login:âssword");
$result = curl_exec($ch);
$error = curl_error($ch);
curl_close($ch);
echo $result;
echo $error;

Chez moi cela marche



Vilhjálms


Sigurðsdóttir aka Frëyjá
Messages postés
591
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
16 juillet 2009
2
Saell og blesuð

Il se peut egalement que vous ayez besoin de ses deux options si vous avez une erreur du type :

SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
soit :
CURLOPT_CAINFO
CURLOPT_CAPATH

Vilhjálms
Sigurðsdóttir aka Frëyjá
Messages postés
591
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
16 juillet 2009
2
Saell og blesuð

Vous pouvez aussi regarder sur ce site il est tres bien fait a mon idee :

http://curl.haxx.se/



Vilhjálms


Sigurðsdóttir aka Frëyjá
Messages postés
40
Date d'inscription
jeudi 22 décembre 2005
Statut
Membre
Dernière intervention
11 juin 2007

Bonjour tout le monde,
Tout dabort je tenais à remercier [auteurdetail.aspx?ID=551996 vilhjalms]pour tous les liens très utiles qu'il m'a donné.
Bon, j'ai reussi à m'identifier auprés du site sauf que apparament j'ai un probleme de cookie parce que quand je clique sur le bouton deconnecté je retourne bien sur la page d'identification mais si j essai de me reconnecter on me dit que l'utilisateur est deja connecté et je suis obligé d'attendre un petit moment avant de pouvoir me reconnecter.
Quelqu'un sait il comment est ce que l'on gère les cookies avec curl, j'ai essayé avec:

curl_setopt($ch, CURLOPT_COOKIEJAR, $moncookie);
curl_setopt($ch, CURLOPT_COOKIEFILE, $moncookie);

mais cela n'a pas l'air de fonctionner, j'sais pas trop comment faire, si quelqu'un a une idée...
Encore merci à vilhjalms
Messages postés
591
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
16 juillet 2009
2
Saell og blesuð

Pour le cookie vous pouvez essayer ceci :


curl_setopt ($ch, CURLOPT_COOKIEJAR, COOKIE_FILE_PATH);
curl_setopt ($ch, CURLOPT_COOKIEFILE, COOKIE_FILE_PATH);





ou encore :



curl_setopt($ch, CURLOPT_COOKIEJAR, '-');








Vilhjálms


Sigurðsdóttir aka Frëyjá
Messages postés
591
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
16 juillet 2009
2
Saell og blesuð





$cookie_file_path = "../../cookie.txt";
curl_setopt ($ch, curlOPT_COOKIEJAR, $cookie_file_path);
curl_setopt ($ch, curlOPT_COOKIE, session_name().'='.session_id() );
curl_setopt ($ch, curlOPT_COOKIESESSION, 1);
curl_setopt ($ch, curlOPT_COOKIEFILE, $cookie_file_path);

Vilhjálms
Sigurðsdóttir aka Frëyjá
Messages postés
40
Date d'inscription
jeudi 22 décembre 2005
Statut
Membre
Dernière intervention
11 juin 2007

Bon apparament c'est pas non plus la bonne solution, le site m'a encore mal deconnecté.
Le mieux serait que je puisse faire cela:
Que j'arrive à me servir du cookie de la session en cour
pour que mon script puisse acceder directement à la page sur laquelle
je veux recuperer mes données.
Mais est ce possible en theorie?
Messages postés
591
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
16 juillet 2009
2
Saell og blesuð

Quel est votre code actuel et le site que vous souhaitez atteindre ?



Vilhjálms


Sigurðsdóttir aka Frëyjá
Messages postés
40
Date d'inscription
jeudi 22 décembre 2005
Statut
Membre
Dernière intervention
11 juin 2007

Je viens de m'appercevoir qu'avec mon script une fois l'identification  effectué  (je suis donc sur la page suivante) et  bien si je clique sur un lien le serveur me renvoi:
The requested URL /.../afficheFrameset.do was not found on this server.
Je suppose que mon probleme de deco a un lien avec cette erreur.
Mais d'ou peut t-elle venir?
Messages postés
591
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
16 juillet 2009
2
Saell og blesuð

Heu petite question con mais une fois connecte avez vous un lien pour vous deconnectez ?
Et sans curl comment faites vous ordinairement ?



Vilhjálms


Sigurðsdóttir aka Frëyjá
Messages postés
591
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
16 juillet 2009
2
Saell og blesuð

Il semblerait qu il recherche son chemin à partir de l'instance curl. en temps normal si vous cliquez sur le lien vous avez toujours la meme erreur ? : he requested URL /.../afficheFrameset.do was not found on this server.

Vilhjálms
Sigurðsdóttir aka Frëyjá
Messages postés
591
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
16 juillet 2009
2
Saell og blesuð

Heu vous avez essaye en mettant le chemin complet du cookie ? Parce qu il semblerait que curl n aime pas vraiment cela



Vilhjálms


Sigurðsdóttir aka Frëyjá
Messages postés
40
Date d'inscription
jeudi 22 décembre 2005
Statut
Membre
Dernière intervention
11 juin 2007

Quand je me connecte sur ce site en temps normal (donc juste pour visualiser les pages) j'ai en effet un bouton qui me permet de me deconnecter.
Quand je passe par curl j'arrive sur la meme interface qu 'en temps normal, j'ai donc le bouton de deco. Si je clique dessus tout parrait se passer correctement puisqu on me renvoit sur la page d'identification sauf qu'apparemment ma session ne se ferme pas.
Si je clique sur un autre lien j'ai l'erreur dont je vous ai parlé, je suppose que c'est parce que le chemin part de l'instance de curl mais pourquoi....
 erreur qui par une connexion normale au site n'apparait pas bien entendu.
https://parcours3.cce.bull.fr/P3NoyauDur/auth.do : url normale (sans curl)
Messages postés
40
Date d'inscription
jeudi 22 décembre 2005
Statut
Membre
Dernière intervention
11 juin 2007

Je viens de m'appercevoir que si je me connecte avec curl je peux me deconnecter et me reconnecter autant de fois que je le veux il n'y aura pas de soucis, de plus je ne reçoit aucun cookie.
Par contre si j'essai de me connecter normalement après une session curl il me dit que l'utilisateur est deja connecté et je suis obligé d'attendre.
comment est ce possible? Que deviennent mes cookies?
Messages postés
40
Date d'inscription
jeudi 22 décembre 2005
Statut
Membre
Dernière intervention
11 juin 2007

j'ai essayer d' enlever cette ligne:


 curl_setopt($ch, CURLOPT_COOKIEFILE, $moncookie);

qui est precédée par celle-ci:

curl_setopt($ch, CURLOPT_COOKIEJAR, $moncookie);

et quand j'ai reactualisé la page le site m'a renvoyé sur le formulaire d'identification en me disant que l'utilisateur est deja connecté.
Le truc que je ne comprend pas c'est qu'il n'y à jamais rien dans le fichier $moncookie.
Donc pourquoi le fait d'enlever cette ligne changerai quelque chose?
Si je remet la ligne et que j'actualise il me dit que l'utilisateur est toujours connecté, je suis obligé d'attendre
Messages postés
2
Date d'inscription
mardi 5 avril 2005
Statut
Membre
Dernière intervention
10 avril 2008

c'est facile et simple:il faut ajouter cette ligne dans votre code.

curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0);

ca va fonctionner.
Messages postés
18
Date d'inscription
mardi 29 avril 2008
Statut
Membre
Dernière intervention
17 janvier 2009

Bonjour,

J'ai la même idée en tête, mais j'ai l'erreur signalée par [auteur/VILHJALMS/551996.aspx vilhjalms] plus haut :

(balise quote )

SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
soit :
CURLOPT_CAINFO
CURLOPT_CAPATH

(fin balise quote )

Me faut-il obligatoirement récuperer les certificats de l'autre serveur, ou est ce que l'authentification n'a simplement pas fonctionnée ?
Messages postés
18
Date d'inscription
mardi 29 avril 2008
Statut
Membre
Dernière intervention
17 janvier 2009

Petit info en plus : en ajoutant l'option de [auteur/SAIFON/484241.aspx saifon] (je l'avais mis à true), je n'ai plus le message d'erreur mais une redirection vers la page erreur 404 : missing de mon serveur, ça a donc généré une mauvaise redirection...
Messages postés
18
Date d'inscription
mardi 29 avril 2008
Statut
Membre
Dernière intervention
17 janvier 2009

J'ai cerné un peu plus le problème :

En désactivent ma page 404 sur 'http://monsite.com', je récupère la page à laquelle il essaye d'acceder.

Voilà le fonctionnement :

1 - Je lance une connexion vers un site 'https://exemple.com' avec cURL depuis 'http://monsite.com'
2 - L'authentification semble fonctionner puisqu'il y a une redirection du style './ceci/cela/cettepage.jsp.html' sur ce deuxième serveur (qui ne se fait pas si l'identification n'a pas lieu, il y aurait autrement la fenêtre de mot de passe).
3 - le problème est que le redirecton se fait sur mon serveur : au lieu d'avoir
'https://exemple.com/ceci/cela/cettepage.jsp.html'
j'ai
'http://monsite.com/ceci/cela/cettepage.jsp.html'

Quelqu'un peut-il m'éclairer sur les options de cURL à modifier pour que cela fonctionne ?

Merci !

Colin