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