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   -
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 :

<?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:

3 réponses

mat8883 Messages postés 41 Date d'inscription   Statut Membre Dernière intervention  
 
Quelqu'un a une idée ?
0
Utilisateur anonyme
 
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
0
mat8883 Messages postés 41 Date d'inscription   Statut Membre Dernière intervention  
 
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 !
0