Version complète: sur le forum Webmaster Hub : login et mot de passe sur page web
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
minimouse
bonsoir tout le monde,

j'ai réussi à mettre un login et un mot de passe sur une page.
<?php
if ( ($PHP_AUTH_USER=="login") and ($PHP_AUTH_PW=="motdepasse") )
{$auth=true;}
else
{$auth=false;}

if (!$auth) {
header( 'WWW-Authenticate: Basic realm="Compte gestionnaire"' );
header( 'HTTP/1.0 401 Unauthorized' );
print "<html><head><title> ACCES NON AUTORISE</title></head><body>";
print "<center>Authentification nécessaire</center></html>";
exit;
}
else {
// ici le code de la page protégée complète entre <html> et </html>
}
?>

Quand je travaille en local tout va bien et sur le site distant rien ne va plus... pourquoi ????que faut-il que je fasse pour que cela fonctionne ?
Merci pour votre aide
Spark
Salut,

Avec ça je pense que ça fonctionnera mieux (chez moi en local ton code ne marche pas sans ça) :

CODE
if ( ($_SERVER['PHP_AUTH_USER']=="login") and ($_SERVER['PHP_AUTH_PW']=="motdepasse") )
minimouse
Merci Spark,

j'ai remplacé if ( (... par ton code et ça ne fonctionne pas... mais je viens de me rendre compte qu'à ce niveau : else {
// ici le code de la page protégée complète entre <html> et </html>
}
je n'ai rien rempli : sinon qu'est-ce que je dois mettre comme code entre <html> et </html> ????
je pense que le problème vient de là également

Merci de me dépatouiller !!!
Spark
CODE
Note: Il ne faut rien envoyer au navigateur avant l'utilisation de la fonctionn header() : espaces, lignes blanches, HTML ou '\n', '\r', etc.. L'envoi de caractères avant les entêtes provoque une erreur d'analyse lors de l'exécution du script.


Je ne vois pas pourquoi ... mais j'ai lu ça, le problème ne viens pas de là j'en suis presque sur. Je suis en train de chercher.

EDIT : je pense qu'il parle d'avant "<?php"


J'arrête de cherché pour aujourd'hui. Sécurisé un seul fichier peut être intéressant, mais le faire pour un dossier entier serait plus simple, surtout avec 1&1 qui permet de le faire dans l'interface de gestion.
minimouse
je te remercie Spark de "chercher"

donc à plus en espérant que tu auras trouvé quelque chose (ce serait vraiment bien !!!)
Remi
Certainement rien à voir avec la présence de lignes vides avant un header (quand on a une ligne vide, l'interpréteur PHP commence la construction de la page et envoie les headers, donc si on fait un header derrirère on a "headers already sent"... c'est logique).

Le problème vient sans doute du fait que la récupération des paramètres de login peut varier suivant les serveurs. Par exemple, sur certaines configurations, il faut utiliser $_server[REMOTE_USER]

Sinon entre les balises <html>et </html>, et bien tu mets le contenu de ta page à protéger. blush.gif
minimouse
Merci pour ta réponse Rémi,
mais avec $_server [REMOTE_USER], je dois le placer ou et comment ? peux-tu m'écrire le noveau code ?
Remi
REMOTE_USER est à tester en lieu et place de PHP_AUTH_USER

Et puis pour sécuriser un poil la chose, il est certainement de bon ton de mettre :
CODE
if ( strip_tags($_SERVER['PHP_AUTH_USER']) == ....  &&  strip_tags($_SERVER['PHP_AUTH_PW']) == ...)
Leonick
En plus sur certains serveurs, genre les mutu OVH, on ne peut récupérer PHP_AUTH_PW
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.