minimouse Posté 27 Mars 2007 Partager Posté 27 Mars 2007 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 More sharing options...
Spark Posté 27 Mars 2007 Partager Posté 27 Mars 2007 (modifié) 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é 27 Mars 2007 par Spark Lien vers le commentaire Partager sur d’autres sites More sharing options...
minimouse Posté 28 Mars 2007 Auteur Partager Posté 28 Mars 2007 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 More sharing options...
Spark Posté 28 Mars 2007 Partager Posté 28 Mars 2007 (modifié) 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é 28 Mars 2007 par Spark Lien vers le commentaire Partager sur d’autres sites More sharing options...
minimouse Posté 28 Mars 2007 Auteur Partager Posté 28 Mars 2007 je te remercie Spark de "chercher" donc à plus en espérant que tu auras trouvé quelque chose (ce serait vraiment bien !!!) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Remi Posté 29 Mars 2007 Partager Posté 29 Mars 2007 (modifié) 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. Modifié 29 Mars 2007 par Remi Lien vers le commentaire Partager sur d’autres sites More sharing options...
minimouse Posté 29 Mars 2007 Auteur Partager Posté 29 Mars 2007 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 ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Remi Posté 29 Mars 2007 Partager Posté 29 Mars 2007 (modifié) 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é 29 Mars 2007 par Remi Lien vers le commentaire Partager sur d’autres sites More sharing options...
Leonick Posté 19 Avril 2007 Partager Posté 19 Avril 2007 En plus sur certains serveurs, genre les mutu OVH, on ne peut récupérer PHP_AUTH_PW Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant