Page 1 sur 1

(Résolu) Séparer code php .htaccess ?

Posté : 15 déc. 2011, 18:35
par brother
Besoin d’une explication sur ce code, qui remplace un (.htaccess) dans un dossier….
D’ailleurs il fonctionne très bien et vous pouvez l’utiliser…. Pour ceux que ça intéresse !

Code : Tout sélectionner

1 <?php 2 @$_SERVER['PHP_AUTH_USER']; 3 @$_SERVER['PHP_AUTH_PW']; 4 5 if ((substr($_SERVER['SERVER_SOFTWARE'], 0, 9) == 'Microsoft') && 6 (!isset($_SERVER['PHP_AUTH_USER'])) && 7 (!isset($_SERVER['PHP_AUTH_PW'])) && 8 (substr($_SERVER['HTTP_AUTHORIZATION'], 0, 6) == 'Basic ') 9 ) { 10 11 list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = 12 explode(':', base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6))); 13 } 14 if 15 // Remplacer le login (user) et le mot de pass (login) 16 ( 17 (@$_SERVER['PHP_AUTH_USER'] != 'user') || 18 (@$_SERVER['PHP_AUTH_PW'] != 'login') 19 ) 20 { 21 header('WWW-Authenticate: Basic realm="Realm-Name"'); 22 23 if (substr(@$_SERVER['SERVER_SOFTWARE'], 0, 9) == 'Microsoft') { 24 header('Status: 401 Unauthorized'); 25 } else { 26 header('HTTP/1.0 401 Unauthorized'); 27 } 28 29 echo "<h1>ACCES INTERDIT</h1>"; 30 } 31 else 32 { ?> Ici le code de ma page html et php etc….. <?php } ?>
Ma question :
Je souhaite remplacer les lignes 17 et 18 par un fichier, par exemple (user_login.php)…
Ce qui me permettrais d’avoir plusieurs page avec ce code et une seule avec les mots de pass…
Ce qui donnerais en remplacement :

Code : Tout sélectionner

<?php include("user_login.php") ?>
J’ai tout essayé, (include, include_once, require et require_once, fichier avec .inc….) bref tout…
Et ça ne fonctionne pas…
Peut-on avec php, séparer ce code tel que définie ci-dessus ?

Merci pour les explications..
Cordialement.

Re: Séparer code php .htaccess ?

Posté : 15 déc. 2011, 22:30
par Ryle
Je ne comprend pas bien ce que tu veux faire... c'est tes 32 premières lignes que tu veux placer dans un fichier qui sera inclus dans tes pages ? (auquel cas tu pourras n'auras avoir qu'un seul fichier avec un login/mdp et l'inclure dans toutes tes pages)

Ou est-ce que c'est uniquement le test des lignes 17/18 que tu veux externaliser (ce qui effectivement ne peut pas se faire simplement avec un include...

Mais si c'est pour l'inclure dans toutes tes pages, pourquoi ne pas mettre un véritable fichier htaccess ?

Re: Séparer code php .htaccess ?

Posté : 15 déc. 2011, 22:45
par brother
Bonsoir,

Effectivement c'est uniquement le test des lignes 17/18 que je veux externaliser...
Pourquoi ?
Parce qu'avec la ligne 29, je peux insérer du code en fonction des différentes pages qui se trouveront dans le dossier concerné (10) pour info.
J'apprend, je découvre, encore et encore #-o ....
Alors si je ne peut pas le faire avec un include...Part quel moyen puis-je le faire ? 8-|

Merci de ton aide :oops:

Re: Séparer code php .htaccess ?

Posté : 15 déc. 2011, 23:34
par Ryle
En fait, tu ne peux pas externaliser uniquement la ligne du if() ... en revanche, ce que tu peux faire, c'est tester une variable (par exemple $autoriseAcces) et externaliser l'initialisation de cette variable.

En gros, entre les lignes 13 et 14, tu inclus ta page user_login.php, puis tu remplaces tes lignes 14 à 20 par :
include ('user_login.php'); // contrôle l'autorisation d'accès

if (isSet($autoriseAcces) && $autoriseAcces===FALSE) {
Et dans ton fichier user_login.php, tu aurais donc simplement
<?php 
if ($_SERVER['PHP_AUTH_USER'] != 'user' || $_SERVER['PHP_AUTH_PW'] != 'login') {
    $autoriseAcces = FALSE;
}
?>
Et tu peux modifier ou compléter au besoin le test qui interdit l'accès :)

Re: Séparer code php .htaccess ?

Posté : 18 déc. 2011, 14:33
par brother
Bonjour Ryle,

Merci beaucoup.... :priere: