$PHP_AUTH_USER ; ouverture de dialog ; aide SVP

Résolu
flasher_13 Messages postés 55 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 2 avril 2012 - 9 mai 2005 à 22:25
cs_sjon Messages postés 861 Date d'inscription mardi 26 mars 2002 Statut Membre Dernière intervention 29 novembre 2006 - 10 mai 2005 à 15:42
J'ai passé une journée à essayé de faire marché un code, je l'ai tortillé dans tout les sens mais là je ne comprend plus rien, j'ai tout essayé! A l'aide SVP.
Voici le code (téléchargé sur ce site):

<?
$fp
= fopen ( "logger.log" , "a+");
fputs ($fp, "$REMOTE_ADDR $HTTP_USER_AGENT $REMOTE_PORT /n");
fclose($fp);
if(!isset
($PHP_AUTH_USER)) {
Header("WWW-Authenticate: Basic realm =" Clan RMV"");
Header("HTTP/1.0 401 Unauthorized");
echo "ERREUR 401 Identification necessaire!";

exit;
} else {

if ($PHP_AUTH_USER!"toto" OR $PHP_AUTH_PW ! "123") {
echo "ERREUR 401 Mauvais login ou mauvais mot de passe!";

exit;
}
}
?>
<script language= 'JavaScript'>

var url = "Accueil.php";

window.location.replace(url);
</script>

Okey, il est bon (enfin...), la fenêtre s'ouvre avec les 2 champs à remplirent, et quand je met "toto" et "123", il ne marche pas, Accueil.php ne s'ouvre pas? Il n'y a même pas "ERREUR 401 Identification necessaire!" qui s'affiche, seulement toujours
"ERREUR 401 Mauvais login ou mauvais mot de passe!", je comprend plus rien! Quelqu'un a une solution?

4 réponses

cs_sjon Messages postés 861 Date d'inscription mardi 26 mars 2002 Statut Membre Dernière intervention 29 novembre 2006 1
10 mai 2005 à 15:42
Sael og blesud

Si vous développez en local vous avez obligatoirement un fichier php.ini. Sous Windows et EasyPHP il est là par défaut : C:\PROGRA~1\EASYPH~1\apache ... Autrement faites un phpinfo(); pour avoir la configuration du server et vérifiez votre register_globals

<?php
phpinfo();
?>


NB : Si la réponse vous convient merci de l'accepter pour fermer ce thread ...

Sigurjón Bírgir Sigurðssón aka Sjón


Fra en skal en med ologum isaprenbokkarinnar ...

HARDWARE : Partie de l'ordinateur qui reçoit les coups quand se plante le software ...

<FON< body>
3
flasher_13 Messages postés 55 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 2 avril 2012
9 mai 2005 à 22:32
Petite rectification pour la fin
Citation:
Okey, il est bon (enfin...), la fenêtre s'ouvre avec les 2 champs à remplirent, et quand je met "toto" et "123", il ne marche pas, Accueil.php ne s'ouvre pas? Il n'y a même pas "ERREUR 401 Mauvais login ou mauvais mot de passe!" qui s'affiche, seulement toujours "ERREUR 401 Identification necessaire!", je comprend plus rien! Quelqu'un a une solution

PS: Des fois g ce problème aussi!
Parse error: parse error in /data/members/free/multimania/fr/c/l/a/clanrmv/htdocs/index.php on line 5

http://www.tomack.fr.st/
0
cs_sjon Messages postés 861 Date d'inscription mardi 26 mars 2002 Statut Membre Dernière intervention 29 novembre 2006 1
9 mai 2005 à 23:34
Sael og blesud

Bon alors jetons un oeil à votre code :

1 : on utilise <?php et non pas <?
2 : on préfère les ' aux "
3 : il semblerait que votre register_globals = On et non pas à Off dans votre fichier php.ini car vous utilisez $REMOTE_ADDR au lieu de $_SERVER['REMOTE_ADDR'] donc vérifiez la valeur de votre register_globals.
4 : il me semble que vous souhaitez faire un retour à la ligne lors de votre inscription de logs via votre /n hors si tel est le cas il faut user de \r\n entre "
5 : par ailleurs votre page telle qu'elle est, si l'utilisateur se plante de mot de passe trois fois il ne pourra pas se relogguer en rafraichissant la page puisque $_SERVER['PHP_AUTH_USER'] est renseigné même s'il n'est pas égal à 'toto'...

Je vous propose un petit code à vous de l'adapter à vos besoins :

<?php
$fp = fopen('logger.log', 'a+');
fputs ($fp, $_SERVER['REMOTE_ADDR'] .' '. $_SERVER['HTTP_USER_AGENT'] .' '. $_SERVER['REMOTE_PORT'] ."\r\n");
fclose($fp);


function auth(){
header('WWW-Authenticate: Basic realm= "Clan RMV"');
header('HTTP/1.0 401 Unauthorized');
echo ' ERREUR 401 Identification necessaire!';
exit;
}


if(!isset($_SERVER['PHP_AUTH_USER'])){
auth();
}else{
if ($_SERVER['PHP_AUTH_USER']! ='toto' OR $_SERVER['PHP_AUTH_PW']!='123') {
auth();
}else{
header('Location:accueil.php');
}
}
?>

PS : Ici le register_globals = Off


NB : Si la réponse vous convient merci de l'accepter pour fermer ce thread ...

Sigurjón Bírgir Sigurðssón aka Sjón


Fra en skal en med ologum isaprenbokkarinnar ...

HARDWARE : Partie de l'ordinateur qui reçoit les coups quand se plante le software ...
0
flasher_13 Messages postés 55 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 2 avril 2012
10 mai 2005 à 06:43
Cette réponse me convient, et le script que vous avez posté est mieux et plus complet, il me convient, mais cela ne marche toujours pas, et je c'est que ça vient de ce que vous me dite, le register_globals = Off
//ou//
il semblerait que votre register_globals = On et non pas à Off dans votre fichier php.ini
(Je n'ais pas de php.ini?, et dans le code il n'y a pas de register_globals?)
PS: je débute en php alors est-ce que je pourrais avoir plus de détails, et encore merci pour votre réponse rapide!
0
Rejoignez-nous