Bonjour,
J'ai un problème que je ne parviens pas à résoudre et je n'arrive pas à trouver suffisamment de renseignements là dessus.
J'ai un répèrtoire protégé par un .htaccess de base (Deny from all).
J'ai un script qui a besoin de lire un fichier texte de ce repertoire en utilisant la fonction file(). Le chemin d'accès est en url et en local. En effet, le script teste les deux méthodes.
Un fopen teste si le fichier existe. J'utilise cette fonction car file_exists() ne fonctionne qu'en local et j'ai besoin d'accéder à plusieurs de mes sites.
Mais le .htaccess bloque tout evidemment.... J'ai beau mettre le nom de mon site en acces autorises dans htaccess, rien n'y fait.
Ma question est la suivante : comment faire pour proteger un répèrtoire de visiteurs peu scrupuleux, tout en laissant mes scripts passer et lire ce dont ils ont besoin? pourquoi le script y parvient-il en local et pas en utilisant l'url?
Car normalement mes scripts devraient pouvoir lire ces fichiers textes sans problèmes il me semble ?! Or il est impossible d'acceder à ces fichiers en passant l'url alors que la partie du script qui lit en local le même script, dans le même repertoire, y arrive parfaitement.
On m'a parlé de droits d'accès: j'ai beau tester en local avec easyphp ou en serveur, le problème est exactement le même. Pourtant windows ne possede pas de chmod ?!
Ca fait un moment que je suis là dessus et j'ai vraiment besoin de votre aide. Je ne sais plus quoi faire.
Je ne cherche pas à ce qu'on m'écrive le script, mais j'ai besoin de bonnes directions (urls, conseils) car je VEUX SAVOIR le faire ;-) C'est une question d'honneur entre mon pc et moi :-)))
Merci pour votre aide.
Voici le code :
<?
class lecture_fichier {
var $repertoire;
var $fichier_a_ouvrir;
var $contenu;
var $temp;
function ouvrir_fichier ($rep,$fich)
{//debut fonction
$this->repertoire=$rep;
$this->fichier_a_ouvrir=$fich;
$this->source=$this->repertoire.$this->fichier_a_ouvrir;
if ($F=@fopen($this->source,"r" )) // on teste si le fichier existe
{
//$this->temp = file($this->source);
$this->contenu=implode ('',file($this->source));
}
else
{
$this->contenu ="Cette page ne peut pas être affichée";
}
return $this->contenu;
}//fin fonction
}
$repertoire="http://www.google.com/";
$fichier="index.html";
$fichier_lol2 = new lecture_fichier ;
$fichier_lol2 ->ouvrir_fichier($repertoire,$fichier);
echo $fichier_lol2->contenu;
echo "<br>";
echo "SUR MON SERVEUR DISTANT: <BR>";
$repertoire="http://www.monsite.com/design/modele/";
$fichier="design.txt";
$fichier_lol3 = new lecture_fichier ;
$fichier_lol3 ->ouvrir_fichier($repertoire,$fichier);
echo $fichier_lol3->contenu;
echo "<br><BR>";
echo "SUR LOCAL AVEC URL: <BR>";
$repertoire="http://localhost/design/modele/";
$fichier="design.txt";
$fichier_lol4 = new lecture_fichier ;
$fichier_lol4 ->ouvrir_fichier($repertoire,$fichier);
echo $fichier_lol4->contenu;
echo "<br><BR>";
echo "SUR LOCAL SANS URL: <BR>";
$repertoire="modele/";
$fichier="design.txt";
$fichier_lol5 = new lecture_fichier ;
$fichier_lol5 ->ouvrir_fichier($repertoire,$fichier);
echo $fichier_lol5->contenu;
?>
---------------
Il n'y a rien de plus ridicule qu'un médecin qui ne meurt pas de vieillesse.Voltaire.