bonjour a tous en ce jour ensoleillé (il grêle chez moi :s)

j'ai un piti probléme. mais tout d'abord, mise en situation.

je suis en alternance dans une toute petite boite de consulting en télécommunication, et je suis actuellement sur la réalisation d'une appli permettant un tas de chose. entre autre de faire des stats sur les consos des clients. pour faire ces stats, j'utilise des fichiers CSV fourni par les opérateurs (SFR, Orange, Bouygues,...). ces fichiers se télécharge sur l'espace client de chaque entreprise en fonction de l'opérateur. pour le moment, c'est mon boss qui doit se logger puis télécharger manuellement chaque fichier pour chaque entreprise. c'est une perte de temps.

pour résoudre se problème j'essaye de réaliser un module qui permettrait de se logger sur le site d'aller sur la page adéquat et de télécharger le fichier.

pour le moment, j'arrive à me logger et à aller sur une page désigné en gardant la session active. mais je n'y parvient que sur des site codé en PHP (j'en ai essayé 2-3). le souci c'est que les sites d'Orange et SFR sont en JAVA et celui de Bouygues en ASP. et le hasard comme par hasard, sur ces sites je n'arrive pas à me logger et donc pas à accéder à la page que je veux.

alors, est-ce que je laisse tomber parce que cURL ne gère que les sites en PHP (j'ai essayé Snoopy aussi) ou est-ce que je suis un gros noob qui à rien compris au fonctionnement de cURL (ça se pourrai bien ^^). j'ai compris que cURL gérait tout au niveau des protocoles et c'est pour ça que je vois pas pourquoi le langage pose problème.

voila le code (que j'ai choppé sur ce site :p)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?
define('LOGIN', 'user');
define('PASSWORD', 'mdp');
define('AUTHENTIFICATION', 'https://pol.sfr.fr/login.do');
define('PAGE_PRIVEE', 'https://etoolonline.sfr.fr/etoolv2web/IdentLogin');
 
$sid = '';
 
/**
 * Première connexion : authentification
 **/
$ch = curl_init(AUTHENTIFICATION);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS,
    array(
        'login' => LOGIN,
        'password' => PASSWORD
    )
);
curl_setopt($ch, CURLOPT_COOKIEJAR, realpath('cookie.txt'));
curl_setopt($ch, CURLOPT_COOKIESESSION, TRUE);
curl_setopt($ch, CURLOPT_COOKIEFILE, realpath('cookie.txt'));
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$ret = curl_exec($ch);
if ($ret == FALSE) {
    die(curl_error($ch));
}
curl_close($ch);
if (preg_match('/(PHPSESSID=[0-9a-z,-]{32,40})/i', $ret, $m)) {
    $sid = '?' . $m[1];
} else if (preg_match('#<input\s+type="hidden"\s+name="([^\r\n\t <>\'"\\\]+)"\s+value="([0-9a-z,-]{32,40})"\s*/?>#i', $ret, $m)) {
    $sid = '?' . $m[1] . '=' . $m[2];
}
echo "<br/><b>".$sid."</b><br/>";;
/**
 * Deuxième partie : réutilisation de la session sur une page tierce
 **/
 echo realpath('cookie.txt');
$ch = curl_init(PAGE_PRIVEE . $sid);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_COOKIEFILE, realpath('cookie.txt'));
$ret = curl_exec($ch);
if ($ret === FALSE) {
    die(curl_error($ch));
}
curl_close($ch);
 
echo $ret;
?>
j'espère que vous aurez eu le courage de lire tout et que vous pourrez m'aider.

EDIT : quand j'essaye de me logger sur sfrentreprise.fr, curl_error() me retourne ; SSL certificate problem, verify that the CA cert is OK