Rechercher : dans
Par :

Récupération de données avec curl

owind, le 8 jui 2009 à 19:34:57 
 Signaler ce message aux modérateurs

Bonjour,
Voilà, je dois créer un script qui permet au visiteur de rentrer le pseudo et le mot de passe de son compte sur Zikle.fr et d'avoir le nombre de crédits qu'il a sur son compte après avoir envoyer le formulaire avec ses identifiants.
Donc voilà mon script :

<h1>Obtenir le nombre de Crédits sur son compte Zikle</h1>

<form action="" method="post">
<p>
Pseudo : <input type="text" name="pseudo" /><br />
Mot de passe : <input type="password" name="password" /><br />
<input type="submit" value="Caluculer les crédits" />
</p>
</form>
<?php
if($_POST['pseudo'] != '' AND $_POST['password'] != '')
{
    function getCredits($login,$password)
    {
        $cookie = $login.'.cookie';
        
        $url = 'http://www.zikle.fr/?p=login';
        $params = '&usr_name='.$login;
        $params.= '&usr_password='.$password;
        $params.= '&usr_cookietime="0"';

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
        curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
        $data = curl_exec($ch);
        curl_close($ch);

        $ch2 = curl_init();
        curl_setopt($ch2, CURLOPT_URL, "http://www.zikle.fr/?p=admin");
        curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch2, CURLOPT_COOKIEFILE, $cookie);
        $data = curl_exec($ch2);
        curl_close($ch2);

        preg_match('#<img src="/images/icon/credit.gif" height="16" width="16"> ([0-9]+)#', $data, $credits);
        $credits = $credits[1];
        @unlink($cookie);
        return $credits;
    }
    $credits = getCredits($_POST['pseudo'],$_POST['password']);
    
    echo '<p>
    Le nombre de crédit(s) sur le compte '.$_POST['pseudo'].' est '.$credits.'</p>';

}
?>



Voilà le code source de la page http://zikle.fr/?p=login (seulement la partie concernée) :
<form action="" method="post" name="login" class="bigForm">
<label for="usr_name">Identifiant:</label>
<input name="usr_name" id="usr_name" size="42" value="" type="text"><br />
<label for="usr_password">Mot de passe:</label>
<input name="usr_password" id="usr_password" size="42" maxlength="255" type="password"><br />
<label for="usr_cookietime">Combien de temps veux-tu rester connecté?:</label>
<select name="usr_cookietime" id="usr_cookietime">
<option value="">-</option>
<option value="0" selected="selected">Je ne veux pas rester connecté</option>
<option value="1247157457">Pour 24 heures</option>
<option value="1247675857">Pour une semaine</option>
<option value="1283071057">Pour toujours</option>
</select><br />
<input name="" class="submit" value="Se connecter" type="submit">
<input name="submitted" value="1" type="hidden">
</form>


Maintenant voilà le code source de http://zikle.fr/?p=admin (seulement partie concernée) :
<img src="/images/icon/credit.gif" height="16" width="16"> 974 <a href="/?p=credits">Crédits</a>


Le problème:
J'ai failli oublier de le dire ;) Le problème est que mon script retourne ceci :
"Le nombre de crédit(s) sur le compte trucmuch est "
Aucun nombre ! :o

Il n'y a qu'une seule partie de mon script ou j'ai vraiment fait du copier coller sans faire attention car je ne savait pas quoi modifier/enlever (surtout COOKIEJAR et COOKIEFILE) :
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
$data = curl_exec($ch);
curl_close($ch);
Configuration: Windows Vista
Firefox 3.5

Meilleures réponses pour « Récupération de données avec curl » dans :
Télécharger Recovery for FileMaker VoirFileMaker Pro est un programme de gestion de bases de données qui fonctionne soit en réseau, soit en mode Client-serveur. D'où la nécessité d'être prudent quant aux données que l'on manipule. Recovery for FileMaker est un outil de récupération de...
Télécharger Recover Files VoirNe vous est-il jamais arrive de supprimer par mégarde un fichier de votre disque dur ou pire d'un disque amovible ? Recover Files comme son nom l'indique est un outil permettant la récupération de fichiers supprimer. Il fonctionne même si vous avez...
Collection CommentÇaMarche.net