Script force download
Posté : 07 juil. 2011, 11:55
Bonjour,
Je suis débutant en PHP, et l'on m'a confié une tâche plutôt fastidieuse. Sur le site de mon entreprise, un script permet de faire du force download. Ce script fonctionne bien, à une exception près :
Depuis que l'on est passé sur un hébergement mutualisé chez OVH, lorsque l'on insère une donnée dans la base MySQL, le résultat est dupliqué, voire triplé, mais à d'autres moments non ! En gros, c'est aléatoire... Peut-être est-ce le script qui n'est pas optimisé ? Je sais en effet qu'il existe différents scripts pour faire du force download... Merci de votre aide
Je suis débutant en PHP, et l'on m'a confié une tâche plutôt fastidieuse. Sur le site de mon entreprise, un script permet de faire du force download. Ce script fonctionne bien, à une exception près :
Depuis que l'on est passé sur un hébergement mutualisé chez OVH, lorsque l'on insère une donnée dans la base MySQL, le résultat est dupliqué, voire triplé, mais à d'autres moments non ! En gros, c'est aléatoire... Peut-être est-ce le script qui n'est pas optimisé ? Je sais en effet qu'il existe différents scripts pour faire du force download... Merci de votre aide
<?php
session_start();
include ('../../Fichier_connect/x.php');
if (!empty($_SESSION['Login'])&&!empty($_SESSION['MDP']))
{
$fichier = 'monfichier';
$chemin = '../../Telechargement/V4.3/' . $fichier;
$login = $_SESSION['Login'];
$password = $_SESSION['MDP'];
$SQL= "(Select RaisonSociale From login Where Login='".$login."' and MDP ='".sha1($password)."')";
$req = mysql_query($SQL) or die('Erreur SQL !<br>'.$SQL.'<br>'.mysql_error());
$data = mysql_fetch_array($req);
// Récupération du fichier passé en paramètre
if ($chemin != '') // non vide
{
// IMPORTANT : avant quoi que ce soit, on vérifie que le fichier existe bien
if (file_exists($chemin))
{
// Le fichier existe bien : on va incrémenter son compteur de téléchargements
$req_augmenterdownload = "UPDATE downloads_files
SET
downloaded = (downloaded+1),
last_download = '".time()."',
last_user = '".$data['RaisonSociale']."'
WHERE
filename='".$chemin."';";
mysql_query($req_augmenterdownload) or die($req_augmenterdownload.'<br />'.mysql_error());
//Insertion qui télécharge
$req_insert = "INSERT INTO suivi_telechargement (RAISONSOCIALE, FICHIER, DATE) VALUES ('".$data['RaisonSociale'] ."','".$chemin."','".time()."')";
mysql_query($req_insert) or die($req_insert.'<br />'.mysql_error());
// requête effectuée : on envoie le fichier
$f=fopen($chemin,"rb");
$file=fread($f,filesize($chemin));
fclose($f);
header("Content-disposition: attachment; filename=".$fichier);
header("Content-type:application/octet-stream");
header('Content-Length: '. filesize($chemin));
header('Content-Transfer-Encoding: binary');
header('Pragma: no-cache');
header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
echo($file);
exit();
};
};
}
else
{
echo "<script>alert(\"Vous devez vous connecter pour télécharger\")</script>";
echo '<META HTTP-EQUIV="Refresh" CONTENT="3;URL= http://www.monsite.com"> ';
};
function detect_browser($var)
{
if(eregi("(msie) ([0-9]{1,2}.[0-9]{1,3})", $var))
{
$c = "ie";
}else{
$c = "nn";
}
return $c;
}
?>