Je réalise un script de téléchargement de kit graphique.
Si l'utilisateur possède assez de points, le téléchargement se lance, sinon, un message l'avertit qu'il n'a pas assez de points.
Si il a assez de points, le prix du kit graphique est soustrait de ses points.
Ensuite, le téléchargement se lance.
Malheureusement, cela ne marche pas.
Les points ne sont pas soustraits et fichier zip sensé être téléchargé est lue par la page, elle écrit quelque chose comme ça :
Voici mon code :PKÊb‰>6í°W index.htmlíXÝNëF¾‰w˜ãÞ’8ê§I¤¸@! ‰Ú^¡=IV]ïºû“€Ôê›õ¼Egl'äPhE¥J§’sáìÚ3ß|ó·+MçÃðn0ýyœÀÊç Æ³‹›ëD8þñã Ž‡Ó!üt5½½Óö Ü{+SÇÉ(‚hå}ñ)Ž7›
Code : Tout sélectionner
<?php $kit = $_GET['id'];
$fi = mysql_query("SELECT prix, nom FROM kit WHERE id=$kit") or exit(mysql_error());
$fetch = mysql_fetch_assoc($fi); // Il faut quand meme aller chercher l'assoc
$prix = $fetch['prix'];
$nom = $fetch['nom'];
$fichier_local = "kits/num1.zip";
$fichier_client = "$nom.zip";
if(mysql_num_rows($fi) == 0) { echo'<h2>Erreur 404 : <span class="red_title">Kit Graphique Introuvable</span></h2>
<img src="images/404_kit.png" alt="Erreur 404" />'; exit(); }
$user = mysql_real_escape_string($_SESSION['login']);
$query = mysql_query("SELECT * FROM utilisateurs WHERE nom='$user'") or exit(mysql_error());
$fetch2 = mysql_fetch_assoc($query);
$points = $fetch2['points'];
if($points >= $prix) {
$pts = $points-$prix;
mysql_query("UPDATE utilisateurs SET points='$points' WHERE nom='$user'")or exit(mysql_error());
if (file_exists($fichier_local)==true)
{
if (strstr($HTTP_USER_AGENT,"MSIE"))
$attachment="";
else
$attachment=" attachment;";
header( "Content-type: application/zip" );
header( "Content-Disposition:$attachment filename=$fichier_client");
header( "Content-Description: File Transfert" );
header( "Content-Length: ".filesize($fichier_local)."");
readfile($fichier_local);
exit;
}
else { echo'Une erreur est survenue.';}
}
else
{
echo 'Vous n\'avez pas assez de points';
}
?>