accès à un fichier protégé dans un repertoire par htaccess

Petit nouveau ! | 8 Messages

17 mai 2008, 17:54

Bonjour la communauté !

Voilà un petit moment que je regarde le monde de la programmation évoluer et voilà enfin que je me décide enfin à franchir le pas et à prendre le train en marche... et ce n'est pas sans risques ^^

J'ai donc recourt à la panoplie du parfait newB : 2 bouquins sur le PHP, 4 onglets d'ouverts dans Firefox sur les sites majeurs de PHP, beaucoup de courage et des nerfs à (presque) toute épreuve... et ça tombe bien, car les problèmes ne tardent pas à se manifester (satanés problèmes)...

Bon, j'arrête de disserter et vous expose le dernier en date, de problème...


Il y a plusieurs mois, une personne m'a aidé en programmant un bout de code qui ne fonctionne plus aujourd'hui. Et je suis bien incapable de savoir pourquoi, peu-être le passage de PHP 4 à 5...
Bref, j'ai un fichier page.php qui va chercher un fichier montexte.txt dans le répertoire protégé (par htaccess) \monrepertoire et l'affiche.
Voici le code du fichier page.php :

<?

echo "<style type=\"text/css\" title=\"currentStyle\">@import \"moncss.css\";</style>";

$filename = "http://monID:[email protected]/monrepertoire/montexte.txt";	


$message = "";
$flog = @fopen($filename,"r") ; 
if ($flog===FALSE)
{
	echo "Pas de texte !";
	exit;
}

while (!feof($flog))
{
	$buffer = fgets($flog, 4096);
		$message = $message.$buffer;
}
fclose($flog);

echo $message;
		
	
?>
La page http://www.monsite.com/page.php me renvoie invariablement "Pas de texte !"...
Il semblerait que cela vienne de la phrase :
$filename = "http://monID:[email protected]/monrepertoire/montexte.txt";
qui ne doit plus être d'actualité...

Cela fait un bon moment que je cherche la solution et au final, je m'en remets à vous pour trouver un moyen de lire ce satané fichier texte !
Mer6 par avance pour votre aide...

Bises

S1

Mammouth du PHP | 1668 Messages

17 mai 2008, 18:42

Bonjour à toi mon embryon, rase toi avant de nous faire la bise merci :lol:

Le fichier est apparemment externe, peut-tu mettre ce document en xml, ce serait plus simple...
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

ViPHP
ViPHP | 5924 Messages

17 mai 2008, 19:07

Remplace le <? par un <?php et cela fonctionnera…

Petit nouveau ! | 8 Messages

17 mai 2008, 19:21

Remplace le <? par un <?php et cela fonctionnera…
j'ai essayé mais ça ne fonctionne toujours pas :(

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

ViPHP
ViPHP | 5924 Messages

17 mai 2008, 20:49

Remplace le <? par un <?php et cela fonctionnera…
j'ai essayé mais ça ne fonctionne toujours pas :(
C'est à dire ?

Petit nouveau ! | 8 Messages

17 mai 2008, 20:55

j'ai remplacé le <? par un <?php dans la première ligne...

La page http://www.monsite.com/page.php me renvoie invariablement "Pas de texte !"... comme si la connexion avec le fichier ne se faisait pas !?!

En tout cas, mer6 de ta rapidité à répondre ^^

Mammouth du PHP | 19672 Messages

17 mai 2008, 21:27

Vire également le "@" devant le fopen() : j'ai idée que le problème va apparaître.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 8 Messages

17 mai 2008, 22:38

effectivement :
Warning: fopen() [function.fopen]: URL file-access is disabled in the server configuration in /home/www...
Warning: fopen(http://...@...) [function.fopen]: failed to open stream: no suitable wrapper could be found in /home/www... on line 9

je venais justement d'aller voir le phpinfo du serveur :
Directive Local Value Master Value
allow_url_fopen On Off

j'avoue que je ne sais plus quoi faire... changer les paramètres du serveur c'est pas trop possible je pense et sinon trouver une autre fonction php, mais vu mon niveau de programmation :(

Merci encore à tous le monde...
Toute aide pour ma suite serait très appréciée...

S1

ViPHP
ViPHP | 5924 Messages

17 mai 2008, 22:48

Désolé mais en fait c'est un peu con de spécifier une url pour aller chercher le fichier s'il est sur le même site… C'est genre pourquoi faire simple quand on peut faire compliqué :-/
Spécifie un chemin vers le fichier plutôt qu'une url…

Petit nouveau ! | 8 Messages

17 mai 2008, 22:52

Désolé mais en fait c'est un peu con de spécifier une url pour aller chercher le fichier s'il est sur le même site… C'est genre pourquoi faire simple quand on peut faire compliqué :-/
Spécifie un chemin vers le fichier plutôt qu'une url…
oui, mais tu peux me dire comment l'écrire stp ?
$filename = "http://monID:[email protected]/monrepertoire/montexte.txt";
devient quoi ?
$filename = "monID:monPass@monrepertoire/montexte.txt";
???

Mammouth du PHP | 693 Messages

17 mai 2008, 22:52

Le chemain d'accès et en gros les répertoire que tu dois ouvrir pour accèder à ton fichier.

Par exemple, si ton script est dans 'monrepertoire', si tu dis $filename="montexte.txt", ca devrait pouvoir l'ouvrir.

Si ton script est à la racine, il suffit d'ajouter avant monrépertoire/

Cependant, la protection avec le htacces ne marche pas, vu que ce n'est plus une requete http, mais tu peux très bien gérer toi même les accès en utilisant les variables de sessions.

Petit nouveau ! | 8 Messages

17 mai 2008, 22:57

mon script, le fichier page.php est à la racine du site et va chercher dans le repertoire monrepertoire le fichier montexte.txt

il va donc me falloir utiliser les variables de sessions... je vais chercher sur les tutoriaux...
^^

Merci encore à tout le monde !!!
... qu'est ce qu'on apprend ici...

ViPHP
ViPHP | 5924 Messages

17 mai 2008, 23:51

Avec un .htaccess tu te compliques un peu la vie il faut avouer. Le fait d'accéder au fichier par l'arborescence locale t'affranchis de toute nécessité d'une identification par .htaccess. Et même mieux, de cette manière, tu peux même sortir le fichier de l'arborescence web et le placer là où une requète http ne pourra même pas venir le chercher…
Par exemple si la racine du site est au chemin /a1/sites/monsite et que tu mets le fichier dans /a1/dossier_protege, aucun internaute ne pourra venir chercher le fichier (si bien sûr il n'y a pas un site dans ce répertoire).

Petit nouveau ! | 8 Messages

18 mai 2008, 09:09

Je comprends bien ta 2e phrase, Sékiltoyai, mais dans mon cas, le fichier montexte.txt est généré depuis une autre page creation.php lié à xinha (pour une utilisation comme dans "word")... et donc montexte.txt doit etre protégé puisqu'il est ouvert en écriture (chmod)... d'ailleurs creation.php doit etre protégé aussi.

Mais c'est vrai que comme newB, je n'apprehende surement pas tout sous le bon angle... mais bon ça marche en ce moment, sauf le login et le passwd...

Si quelqu'un a l'adresse d'un bon tutorial pour les variables de sessions, je prends ^^
Mer6 encore

Mammouth du PHP | 693 Messages

18 mai 2008, 09:28