Aller au contenu

login et mot de passe sur page web


minimouse

Sujets conseillés

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

Lien vers le commentaire
Partager sur d’autres sites

Salut,

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

if ( ($_SERVER['PHP_AUTH_USER']=="login") and ($_SERVER['PHP_AUTH_PW']=="motdepasse") )

Modifié par Spark
Lien vers le commentaire
Partager sur d’autres sites

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 !!!

Lien vers le commentaire
Partager sur d’autres sites

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.

Modifié par Spark
Lien vers le commentaire
Partager sur d’autres sites

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:

Modifié par Remi
Lien vers le commentaire
Partager sur d’autres sites

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 :

if ( strip_tags($_SERVER['PHP_AUTH_USER']) == ....  &&  strip_tags($_SERVER['PHP_AUTH_PW']) == ...)

Modifié par Remi
Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines plus tard...

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...