2010-04-22 2 views

Répondre

2

Vous ne devriez pas faire cela.

Soit:

  1. Ajouter un code à votre répertoire .htaccess protégé pour utiliser votre système d'authentification de PHP et de supprimer l'authentification .htaccess. Ecrivez une nouvelle page PHP/script par le biais de laquelle vos utilisateurs authentifiés auront accès à tout le contenu protégé. Déplacez le contenu protégé hors de la racine Web ou utilisez votre fichier .htaccess pour refuser tout accès. Votre script sera en mesure d'accéder aux fichiers, mais les utilisateurs devront passer par le script pour y accéder.

0

Désolé, je ne crois pas que ce soit possible (sauf si vous voulez utiliser le nom d'utilisateur: pass @ url scheme). Vous pourriez écrire un peu d'ajax pour le faire dans les coulisses, ce qui signifierait que le navigateur se souviendra de l'autorisation pour cette zone (peut-être, je ne l'ai jamais réellement essayé). Mais vous auriez toujours besoin du nom d'utilisateur/passe indépendamment. Pour la sécurité de ne pas transmettre le mot de passe en texte clair sur le navigateur (je suppose que vous utilisez https pour transmettre le mot de passe sur le réseau, ou si vous ne devriez pas!) Je pense que ce sera un peu ennuyeux pour l'utilisateur, mais pas une énorme quantité de tracas à mon avis.

Bien sûr, vous pouvez faire l'authentification sur cet autre dossier en PHP, ce qui résoudrait le problème, ou mettre tout votre code protégé au même endroit avec l'authentification HTTP, mais je suppose que vous ne voulez pas (ou je ne peux pas) fais ceci.

2

Si vous souhaitez éviter les connexions multiples mais que vous avez besoin d'une authentification HTTP, vous pouvez utiliser l'authentification HTTP uniquement pour l'authentification. C'est parce que PHP peut émettre et répondre à de tels en-têtes.

http://php.net/manual/en/features.http-auth.php

De cette façon, l'utilisateur reçoit un pop up, PHP peut lire et réagir en conséquence et le navigateur passera avec les requêtes suivantes en éliminant d'autres invites.

Remarque: Cette solution n'est pas disponible pour les versions CGI de PHP.