PHP + HTACCESS -> GET, POST ?

Fermé
guismojames Messages postés 14 Date d'inscription mardi 2 juin 2009 Statut Membre Dernière intervention 31 mai 2010 - 2 juin 2009 à 14:54
 yot - 16 juin 2015 à 15:17
Bonjour,

Je souhaiterai savoir si il est possible de protèger un dossier par htaccess mais tout en utilisant un formulaire (html+php) comme interface d'authentification.

Ce la nous donnerai le shéma suivant :

Page d'authentification -> Protection htaccess transparente -> Page privé souhaitée.

Les mot de passe en clair ne fond pas partis de la problématique, ce n'est donc pas la question de ce post.
Il n'est nulement question de l'opignion concernant la sécurité des connexion par session ou par htaccess.
Ce choix technologique doit absolument être maintenu, nous souhaitons simplement rendre plus digeste l'authentification qui actuellement est double (formulaire + login htaccess).

On est parvenu à garder la seule authentification htaccess qui se décline ensuite en session mais ce n'est pas le formulaire de connexion que l'on veut retirer, mais la fenêtre htaccess ! On garde cette possibilité mais je souhaiterai ne pas avoir à l'envisager ^^

D'avance merci à tous.

12 réponses

gabriel gray
19 juil. 2009 à 02:15
Si j'ai bien compris c'est ça que tu cherches :

<?php
function authenticate() {
    header('WWW-Authenticate: Basic realm="Test Authentication System"');
    header('HTTP/1.0 401 Unauthorized');
    echo "Vous devez entrer un identifiant et un mot de passe valide pour accéder
    à cette ressource.\n";
    exit;
}

if ( !isset($_SERVER['PHP_AUTH_USER']) || 
     ($_POST['SeenBefore'] == 1 && $_POST['OldAuth'] == $_SERVER['PHP_AUTH_USER'])) {
    authenticate();
} else {
    echo "<p>Bienvenue : {$_SERVER['PHP_AUTH_USER']}<br />";
    echo "Ancien : {$_REQUEST['OldAuth']}";
    echo "<form action=\"{$_SERVER['PHP_SELF']}\" method=\"post\">\n";
    echo "<input type=\"hidden\" name=\"SeenBefore\" value=\"1\">\n";
    echo "<input type=\"hidden\" name=\"OldAuth\" value=\"{$_SERVER['PHP_AUTH_USER']}\">\n";
    echo "<input type=\"submit\" value=\"Identification\">\n";
    echo "</form></p>\n";
}
?>
3
Par ce que mieux vos tard que jamais, merci infiniment !
0