Problême connexion site distant avec CURL
mat8883
Messages postés
41
Date d'inscription
Statut
Membre
Dernière intervention
-
mat8883 Messages postés 41 Date d'inscription Statut Membre Dernière intervention -
mat8883 Messages postés 41 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Pour un projet, je dois faire un programme en php capable d'aller récupérer mes messages sur un site (https://www.educhorus.net/vauvenargues/cas/login).
Le problème c'est que je n'arrive même pas à faire la première étape, c'est à dire me connecter sur mon compte avec CURL. Cela affiche toujours la page de connexion comme si rien ne s'était passé. Voici mon code :
Et je remplace LT-398-M183NDGyYapAyyu14joo par un généré par le site en allant le chercher dans le code source de la page de connexion.
Si quelqu'un à une solution je suis preneur !
Pour un projet, je dois faire un programme en php capable d'aller récupérer mes messages sur un site (https://www.educhorus.net/vauvenargues/cas/login).
Le problème c'est que je n'arrive même pas à faire la première étape, c'est à dire me connecter sur mon compte avec CURL. Cela affiche toujours la page de connexion comme si rien ne s'était passé. Voici mon code :
<?php $timeout = 10; $alsa_username = 'mon-pseudo'; $alsa_password = 'mon-passe'; $cookies_file = 'cookies.txt'; /************************************************** Première requête : Connexion **************************************************/ $url = 'http://www.educhorus.net/vauvenargues/cas/login'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_FRESH_CONNECT, true); curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla'); if (preg_match(''^https://'i', $url)) { curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); } curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_NOBODY, true); // Forcer cURL à utiliser un nouveau cookie de session curl_setopt($ch, CURLOPT_COOKIESESSION, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, array( 'username' => $alsa_username, 'password' => $alsa_password, 'lt' => 'LT-398-M183NDGyYapAyyu14joo', 'datasource' => '' )); // Fichier dans lequel cURL va écrire les cookies // (pour y stocker les cookies de session) curl_setopt($ch, CURLOPT_COOKIEJAR, $cookies_file); echo curl_exec($ch); curl_close($ch); ?>
Et je remplace LT-398-M183NDGyYapAyyu14joo par un généré par le site en allant le chercher dans le code source de la page de connexion.
Si quelqu'un à une solution je suis preneur !
A voir également:
- Problême connexion site distant avec CURL
- Gmail connexion - Guide
- Site comme coco - Accueil - Réseaux sociaux
- Site de telechargement - Accueil - Outils
- Quel site remplace coco - Accueil - Réseaux sociaux
- Site inaccessible n'autorise pas la connexion - Guide
3 réponses
Bonjour
Je suppose que tu obtiens la valeur à mettre à la place de 'LT-398-M183NDGyYapAyyu14joo' grâce à un premier appel à curl.
Je suppose (aucune certitude) que la valeur obtenue est liée à la connexion que tu as faite pour récupérer cette valeur. Essaye d'envoyer le formulaire sans faire de nouveau curl_init ni curl_setopt($ch, CURLOPT_FRESH_CONNECT, true). Il faut probablement renvoyer aussi avec le formulaire les cookies que le serveur avait envoyés lors de la première connexion
Je suppose que tu obtiens la valeur à mettre à la place de 'LT-398-M183NDGyYapAyyu14joo' grâce à un premier appel à curl.
Je suppose (aucune certitude) que la valeur obtenue est liée à la connexion que tu as faite pour récupérer cette valeur. Essaye d'envoyer le formulaire sans faire de nouveau curl_init ni curl_setopt($ch, CURLOPT_FRESH_CONNECT, true). Il faut probablement renvoyer aussi avec le formulaire les cookies que le serveur avait envoyés lors de la première connexion
Merci de ta réponse,
En fait pour le moment je vais récupérer manuellement cette clés en affichant la source depuis un navigateur. Je n'avais pas pensé aux cookies c'est surement ca ! Comment à ton avis je peux les renvoyer avec curl ? Estce que j'ai un moyen de rentrer ca directement dans le code ?
Merci encore !
En fait pour le moment je vais récupérer manuellement cette clés en affichant la source depuis un navigateur. Je n'avais pas pensé aux cookies c'est surement ca ! Comment à ton avis je peux les renvoyer avec curl ? Estce que j'ai un moyen de rentrer ca directement dans le code ?
Merci encore !