Bonjour,
Je me suis fait un script qui permet de protéger mes images.
Ces images sont dans un répertoires "cachés" et ne sont accessibles que via un mot de passe
Voici le bout de code qui me pose problème
// il y pleins d'autres lignes avant celles-ci...
$id_doc=$pwd[0]; // password du document
$ok=file("http://www.gemitel.com/ccheck_quick_verif.php?id_doc=$id_doc&pwd=$pwd[1]");
// le password utilisé n'est pas valide
if ($ok[0] =="nok")
{
header("location:http://www.gemitel.com/doc_error.php?err=4");
exit;
}
$nf=split("\/",$datas); // nom fichier
$file = $site.$nom_rep."/".$nf[0]."/".$hidden_rep."/".$nf[1]; // url fichier
//print "file=$file";
// téléchargement du fichier
// -------------------------
// extension du fichier
$extfichier=substr($file[1],0,-4);
// Fichiers PHP : Ne pas télécharger !!!
If($extfichier != "jpg" && $extfichier != "gif" && $extfichier != "htaccess")
{
// Juste le nom du fichier
$lefichier = $nf[1];
ob_start();
// Envoi des Headers HTTP : recharge / type image / taille du fichier
//header('Content-Type: image/'.$extfichier);
//header("Expires: 0");
//header("Cache-Control: no-cache, must-revalidate");
//header("Pragma: no-cache");
//header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
//header("Content-Disposition: attachment; filename=".$lefichier);
$open = fopen($file, 'r');
$line=fpassthru($open);
fclose($open);
print $line;
ob_end_flush();
Donc si je laisse ce code tel que je vous le donne, l’image s’affiche correctement.
Par contre si j’enlève les // devant les header pour le téléchargement, le script retourne à la premiere ligne de ce bout de code et donc me renvoie une erreur intercepté par la ligne if ($ok[0] ==“nok”) car le password est supprimé de la BDD au premier passage.
Bref, si vous m’avez suivi, je ne trouve pas l’erreur pour faire fonctionner les en têtes HTTP.
Merci de votre aide…