Htaccess - fournir les pass à php

Nouveau WRInaute
Bonjour,

je travaille, comme beaucoup d'entre vous, avec php. J'ai créé deux fichiers htaccess, l'un demandant une identification, l'autre n'en demandant pas.

arborescence :

www/
->index.php5
->htaccess (ne demande pas d'authentification
->dossier protege/
--> fichier htaccess (demande une authentification)

Je souhaiterais fournir au fichier ->index.php5 les informations d'authentification http, afin qu'il lise le contenu du ->dossier protégé sans que l'utilisateur ait besoin de taper un mot de passe.

Est-ce possible ?

Merci à vous.
 
Nouveau WRInaute
Bonjour, et merci de ton aide.

J'ai déjà lu cette page, mais j'ai du mal à comprendre ce en quoi elle peut m'aider.

Voici le contenu de mon index.php5 :

Code:
<?php
$_SERVER['PHP_AUTH_USER']="user";
$_SERVER['PHP_AUTH_PW']="pass";
session_start();
include("protected/trame.php");
?>

Ainsi, le code php s'exécute parfaitement bien. Par contre, quand il s'agit d'aller récupérer les fichiers html, images, css du sous dossier protégé, il me demande le mot de passe, alors que je l'ai fourni à php (en gros, l'utilisateur n'a pas à fournir de mot de passe, sauf s'il veut accéder au dossier protégé sans passer par l'index.php5).

Merci.
 
WRInaute passionné
Tu peux accéder à un dossier avec ton fichier php même sans lui donner les codes.
le htaccess te protege au niveau du protocole http.
En php, tu est directement du serveur au serveur.
Donc, tu peux accéder à toutes le contenu du fichier php via les fonctions php.

Par contre, ce que tu veux faire, c'est donner l'accès à ton utilisateur des fichiers situé dans ton répertoire protégé, mais seulement s'ils viennent du fichier index.php5 ?

Si je comprends bien comment cela marche, PHP écrit les variables lorsque le client (navigateur ou autre) envoi le login/mot de passe au serveur. L'authentification est alors réalisée pour ce client.
Dans ton cas, le client n'est pas le navigateur : c'est le fichier index.php5 = le serveur php. Par contre, celui qui apelle les images, c'est le navigateur qui lui n'a pas été authentifié -> il n'a pas accès aux images, ce qui est normal.


Une solution imparfaite est de tester le referer dans le htaccess et de rediriger autrement (anti hotlinking classique) mais ca ne marche pas toujours : par exemple quand Norton security n'envoie pas de referer).


Une autre solution si tu veux que le navigateur accéde aux images est d'aller chercher le fichier via php.
Tu peux aller chercher les images par fopen par exemple.

François
 
Discussions similaires
Haut