par
AB » 14 avr. 2011, 15:06
Tu n'as rien d'autre à mettre dans ton .htaccess que : deny from all.
Aucun lien ne pourra lire directement un fichier dans ce dossier.
Par contre php pourra y avoir accès, donc il faut lire les fichiers avec php et c'est dans ta page php que tu mets ta condition <?php if ($_SESSION['admin'] == "ma_session") ?>
Par exemple :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
</head>
<body>
<div>
<img src="read_img.php?img=photo1.jpg" />
<img src="read_img.php?img=photo2.jpg" />
</div>
</body>
</html>
Le script ci-dessus fait donc appel à la page "read_img.php" pour afficher les images.
Contenu de read_img.php :
<?php
if ($_SESSION['admin'] == "ma_session")
{
$img = isset($_GET['img'])? $_GET['img'] :'';
$dossier_protege = 'mon_repertoire_protege/';
$adresse_fichier = $dossier_protege.$img;
$adresse_fichier = strpos($adresse_fichier,'./') !== false ? $adresse_fichier :''; // pour éviter la navigation entre les répertoires
if(is_file($adresse_fichier)) // vérifie que le fichier existe
{
header("Content-Type: image/jpeg");
readfile("$adresse_fichier");
}
}
?>
Tu n'as rien d'autre à mettre dans ton .htaccess que : deny from all.
Aucun lien ne pourra lire directement un fichier dans ce dossier.
Par contre php pourra y avoir accès, donc il faut lire les fichiers avec php et c'est dans ta page php que tu mets ta condition <?php if ($_SESSION['admin'] == "ma_session") ?>
Par exemple :
[php]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
</head>
<body>
<div>
<img src="read_img.php?img=photo1.jpg" />
<img src="read_img.php?img=photo2.jpg" />
</div>
</body>
</html>[/php]
Le script ci-dessus fait donc appel à la page "read_img.php" pour afficher les images.
Contenu de read_img.php :
[php]<?php
if ($_SESSION['admin'] == "ma_session")
{
$img = isset($_GET['img'])? $_GET['img'] :'';
$dossier_protege = 'mon_repertoire_protege/';
$adresse_fichier = $dossier_protege.$img;
$adresse_fichier = strpos($adresse_fichier,'./') !== false ? $adresse_fichier :''; // pour éviter la navigation entre les répertoires
if(is_file($adresse_fichier)) // vérifie que le fichier existe
{
header("Content-Type: image/jpeg");
readfile("$adresse_fichier");
}
}
?>[/php]