Problème avec Curl

Eléphant du PHP | 89 Messages

11 juin 2011, 21:16

Bonjour
J'avais réaliser un script qui me permettait de me connecter sur mon compte steam https://steamcommunity.com/ via curl il y a quelque mois et aujourd’hui lorsque j'essaie de lancer mon script ça ne marche pas comme avant.

J'essaie de comprendre ce qui cloche, je pense que le code est plutôt bon, puisque j'ai réussi à me loguer sur un autre site, maintenant j'ai remarquer que sur le site de steam ils ont rajouté des champs en plus.
Mais le problème persiste même en faisant le changement.
A votre avis d'ou vient le problème?
<?php 
define('AUTHENTIFICATION' , 'https://steamcommunity.com');
define('PAGE_PRIVEE'      , ''); 

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, AUTHENTIFICATION);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS,
    array(
        'username'=>'xxxxxxx',
        'password'=>'xxxx',
	'captchagid'=>'-1',
));           
                        
$fp = fopen ("cookies.txt", "w+");
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, realpath('cookies.txt'));
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIESESSION,  true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$ret = curl_exec($ch);
//$donnee = htmlentities($ret);
echo $ret;
curl_close($ch);


?>

Eléphant du PHP | 92 Messages

11 juin 2011, 21:34

Hello,

J'ai fait un tour sur l'url de steam.
Et y a une différence majeure par rapport à avant, c'est que visiblement le submit du formulaire est géré par le JS.
Jette un oeil au JS à cette adresse pour comprendre ce qui se passe, plus particulièrement la fonction DoLogin():
https://steamcommunity.com/public/javas ... 5&l=french

Ensuite il est possible qui vérifie le referer pour être sûr que l'utilisateur passe bien par leur site avant de lancer une requête de connexion.
Dans ce cas là je suis pas sûr que t puisse faire grand chose...
Programmer c'est 20% de syntaxe pour 80% de réflexion et dans les 20% de syntaxe il faut encore compter une bonne dose de réflexion...
Je vous donne des conseils, pas des solutions toutes faites...

Eléphant du PHP | 89 Messages

12 juin 2011, 00:20

Salut

Oui tu as raison, le submit st bien géré par une fonction js, mais j'ai enlever le script qui gère cette fonction car elle m'embête, et dans le php j'ai réessayer en changeant l'url d'authentification et ca l'air de marcher. Sauf que steam a doublé la protection en ajoutant cette fois ci une identification par mail, du coup mon script en php s'arrête la.
Mais j'ai eu ce que je voulais :).