restriction d'acces php + htaccess

Le
fb
Bonjsoir,

Je souhaiterais mettre en place une restriction d'accès utilisant à la
fois php et htaccess, pour le fonctionnement suivant :

Une page avec formulaire html classique, identifiant + mot de passe +
bouton OK ; on clique sur OK est on accède à un répertoire (ou on reste
sur la page avec message d'erreur si login/passwd incorrect)
répertoire = fichiers en liste sur le serveur web, sans page index.html
donc

Jusque là je suis à peu près capable de me débrouiller.

Mais il faudrait que le réperoire soit protégé par htaccess pour éviter
d'y accéder directement sans passer par la page d'identification.

Je sais aussi créer des protections htaccess, mais comment faire en
sorte qu'à l'identification par PHP suite au formulaire le htaccess soit
automatiquement validé dans la session (pas d'ouverture de dialogue
d'identification). J'imagine que ça se passe au niveau des entêtes HTTP
mais je patauge.
Est-ce seulement possible ? Si oui existerait-il un script ?

Par avance merci de toute aide !
--
françois
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Eric Demeester
Le #41222
dans (in) fr.comp.lang.php, fb (wrote) :

Bonj...soir,


Hello :)

Je souhaiterais mettre en place une restriction d'accès utilisant à la
fois php et htaccess, pour le fonctionnement suivant :
[...]

Mais il faudrait que le réperoire soit protégé par htaccess pour éviter
d'y accéder directement sans passer par la page d'identification.


Je ne suis pas certain de bien avoir compris ce que tu souhaites faire,
mais il me semble qu'une gestion de sessions devrait répondre à ton
besoin.

Je sais aussi créer des protections htaccess, mais comment faire en
sorte qu'à l'identification par PHP suite au formulaire le htaccess soit
automatiquement validé dans la session (pas d'ouverture de dialogue


En n'utilisant pas de .htaccess et en te contentant de gérer des
sessions, tout simplement :)

Est-ce seulement possible ?


Oui (enfin si j'ai compris ce que tu voulais encore une fois).

Le principe est le suivant :

- tu demandes à ton visiteur de s'identifier. Si l'identification
réussit, tu lui affectes une ou plusieurs variables de session ;
- pour l'ensemble des pages protégées, avant de les afficher, tu
vérifies la validité de la (ou des) variable(s) de session
(personnellement je contrôle la validité des variables de session
dans une base de données, mais tu peux aussi utiliser des cookies) ;
- si c'est bon tu affiches la page, sinon tu rediriges sur la page
d'accueil ou sur le formulaire d'identification.

Si oui existerait-il un script ?


Il en existe des centaines et le sujet est trop vaste pour t'en indiquer
un répondant précisément à ton besoin.

Je te suggère de lire la doc concernant les sessions :

http://fr2.php.net/manual/fr/ref.session.php

Le principe général pour chaque page protégée est le suivant :

<?php
// démarrage de la session
session_start();
// récupère le contenu de la variable de session
if (isset($_SESSION['toto']) & !empty($_SESSION['toto'])) {
// la variable existe et est non-vide
$session_id = $_SESSION['toto'];
// Ici on vérifie si $session correspond bien à une entrée
// dans la base de données ou au cookie lu sur l'ordinateur
// du client. Si ce n'est pas ok, retour à la page d'accueil
// voir ci-dessous
}
else {
// la session n'est pas démarrée, retour à la page d'identification
header("Location: ../index.php");
}
?>

Voila, bonnes recherches et bon week-end :)

--
Eric

fb
Le #40793
dans (in) fr.comp.lang.php, fb
Bonj...soir,


Hello :)


Oui c'est plus simple :)


Je ne suis pas certain de bien avoir compris ce que tu souhaites faire,
mais il me semble qu'une gestion de sessions devrait répondre à ton
besoin.


C'est que je voudrais pouvoir afficher, après identification sur un
formulaire html-php, un répertoire entier, avec son contenu - chemin du
type "http://monbosite.fr/repertoire/" ; sans afficher une page par
défaut (pas d'index.html). Bien sûr le répertoire est lui-même protégé
par htaccess+htpasswd mais il faudrait donc que l'identification php
validée annule le contrôle htaccess.
Suis-je plus clair ?

Je pense être capable de créer une restriction d'accès avec des
contrôles de session en têtes de pages mais pour ce que je comprends du
système de sessions php, il ne me parait pas possible de l'appliquer à
un répertoire affiché tel quel. Me trompe-je ?


Je te suggère de lire la doc concernant les sessions :
http://fr2.php.net/manual/fr/ref.session.php


De temps en temps j'essaie de lire des choses comme ça ;)
C'est assez laborieux pour moi, la prog. n'est pas mon métier bien que
je doive y recourir de temps en temps.

Merci beaucoup de ta réponse en tout cas, et pour le script commenté.

Il se pourrait aussi qu'on me vienne en aide par ailleurs finalement ;
si ça marche je vous tiens au courant...

--
françois


Publicité
Poster une réponse
Anonyme