Aide - Recherche - Membres - Calendrier
Version complète : php et htpasswd
Forum Développeur - Administration serveur, programmation et base de données > Programmation > PHP
Ifmy
Salut tout le monde smile.gif

Voilà mon souci:

Je protège l'accès à des dossiers via le couple htaccess et htpasswd, jusqu'ici pas de souci.

Maintenant j'aurais souhaité logger ma session via php et non via la fenêtre qui s'ouvre, là est mon problème.

Mon idée était de simplement ouvrir la session puis de rediriger vers le dossier protégé (déjà loggé je ne devrais pas avoir de fenêtre qui s'ouvre) mais pour cela il me faut connaître les variable log et pass de session utilisé par apache.

je suis peut etre complement à coté de la plaque et ce n'est peut etre tout simplment pas possible? smile.gif

Un grand merci d'avance pour votre aide :oops:
jep
Salut,

C'est tout à fait possible d'utiliser un fichier htpasswd avec PHP.

Pour cela, tu auras besoin des fonctions de lecture de fichiers :
> http://php.net/file_get_contents

Tu auras aussi besoin de la fonction crypt pour pouvoir vérifier tes mots de passe
> http://php.net/crypt

Si tu continue d'utiliser ton fichier htaccess en même temps que PHP, tu risque de rencontré des problème si tu n'envoi pas les variable $_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'] et $_SERVER['PHP_AUTH_TYPE'] via la fonction header
> http://php.net/header

Une autre chose à lire :
> http://www.php.net/manual/fr/features.http-auth.php

smile.gif
Ifmy
Salut smile.gif merci pour toute ces infos. Je débute ca fait beaucoup d'un coup là laugh.gif
en fait ce que que je voulais faire est relativement simple
CODE
<?php

$user=$HTTP_POST_VARS['log'];

$pass=$HTTP_POST_VARS['pass'];

session_start();

$_SESSION["là je sais pas"] = $user;

$_SESSION["là je sais pas"] = $pass;

?>


j'envoie via flash le log et pass, puis j'ouvre la session et renvoie à l'espace sécurisé. La session étant déjà ouverte je ne devrais pas voir apparaître la fenêtre me demandant de me logger.
mais pour ca il faut que je connaisse les variables de session log et pass.

peut être est ce plus compliqué?
merci smile.gif
jep
Oui, c'est plus compliqué car les sessions PHP n'ont rien à voir avec les sessions Apache, chacun utilisant sont propre système.

Couplé une autentification PHP avec une autentification Apache (htaccess) et un petit peu compliqué car ce sont deux mode d'authentification différent.
Ifmy
arf sad.gif ok bon bein bein je vais tout faire en php biggrin.gif
merci
Ifmy
encore moi smile.gif bon j'ai bandonné cett idée et suis parti sur du only php smile.gif

J'ai créé ma bdd comprennant log pass et adresse du dossier concerné.

J'ai aussi créé mon espace admin pour remplire la bdd.

maintenant je cherche le moyen de sécuriser des repertoirs (dossier concerné) en fonction de leur log et pass.
Je sais le faire pour une unique page mais pas pour verrouiller un répertoire entier sad.gif

merci smile.gif
Ldo
la solution pour proteger un repertoire est encore plus compliquée, et niveau sécurité n'offre carrément pas le même niveau de protection qu'un htaccess biggrin.gif

alors quitte à faire du compliqué, autant prendre le plus sûr non ?
biggrin.gif

edit: pas la peine que je te réponde sur macbidouille si ? :mrgreen:
Ifmy
laugh.gif non en effet wink.gif pas la peine

Bon bon ok retour au htaccess biggrin.gif mais il me faut trouver une solution pour pour pouvoir ouvrir mes session avant d'accéder à la page pour ne pas avoir cette fenêtre.

Si vous n'avez pas de solution clef en main, vous avez peut etre des pistes? :oops:

encore merci smile.gif
Ifmy
On m'a parlé d'une possiblité en coulpant htaccess et php c'est à dire en mettant un truc du genre deny for all dans le htaccess et ainsi le contenu ne serait accessible que par script php.

Ca vous donne une idée? smile.gif

merci
qwix
Il me semble que c'est une technique, en tout cas pour administrer apache, j'ai déjà vu des deny from all sur tout et ensuite l'admin faisait les autorisations juste ou il fallait. Maintenant je ne pourrais pas t'en dire beaucoup plus, je reste très basique en config apache car configurer apache c'est pas un travail de 20 minutes lol, c'est une science wink.gif smile.gif

smile.gif
Ifmy
J'ai la solution biggrin.gif c'est tout con laugh.gif oups désolé pour le gros mot wink.gif

un .htaccess avec allow from localhost dedans et y a plus qu'a faire une page php avec header("Location: mapage.php");

au préalable une ouverture dessesion avec redirection au bon dossier et dans le dossier pour le moment j'ai mis un index.php
CODE
<?php

$dossier = opendir(".");

$i=0;

while ($Fichier = readdir($dossier)){

if ($Fichier!="." && $Fichier != ".." && $Fichier != "index.php" && $Fichier != ".htaccess"){

 echo "<a href='$Fichier'>$Fichier</a><br>\n";

 }

$i++;

}

closedir($dossier);

?>

qui liste le contenu et c'est le pied ça marche nickel chrome et c'est d'une simplicité enfantine biggrin.gif

ca me parrait bien sécurisé comme techinique, quand pensez vous?
Ifmy
bon non en fait je retire ce que j'ai dit sad.gif c'est pas aussi simple sad.gif

ppffuuu tout est en place me manque plus que la protection des dossiers sad.gif mais comment faire????

siouplait un petit coup de pouce serait le bien venu smile.gif

je redonne ma config actuel:

un bdd avec log pass et répertoire qui en dépend

via mon index.php j'ouvre uen session et hop ca me redirige directement au dossier dependant du log et pass.

maintenant il me faut protéger ce dossier sad.gif protéger une unique page c'est pas un problème. c'est ce que je pourrais faire dés maintenant, mais voilà si je link directement un .jpg contenu dans ce dossier j'y ai accès directe ou n'importe qu'elle autre page n'ayant pas besoin de session sad.gif

bref je suis bien enmbeté :?

je suis persuadé qu'il doit y avoir une astuce. Je rappel que je ne veux pas passer par htpasswd par ce que je ne veux pas passer par une fenêtre système pour me logger.

Voilà si vous pouviez m'aider ce serait vraiment super sympa smile.gif
jep
Quel hebergeur utilises-tu ? En général, chez les hebergeurs sérieux, il est possible de placer des fichiers hors de l'arboressence HTTP, mais qu'il est possible d'exploiter via un langage de Script comme PHP.
Ifmy
c'est bon j'ai la solution smile.gif

je suis trop une quiche biggrin.gif n'empeche vous auriez put me le dire dés le debut laugh.gif

alors la solution est:

toujours avec htaccess et htpasswd

puis on redirige de cette façon:

http://log:pass@www.monsite.com

et ainsi plus de fenêtre système smile.gif

pas tapper! aye!
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2009 Invision Power Services, Inc.