/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
password protection
Fra : Smea


Dato : 03-06-01 15:36

Hej

Jeg har nedenstående script, til passwordbeskyttelse. Skidtet virker for så
vidt godt nok, bortset fra hvis man indtaster forkert password.
I det tilfælde udskrives "Sorry, could not find your password" til skærmen.
Fint nok. Men hvad hvis brugeren gerne vil prøve igen? Brugeren vil reloade
siden for at få passwordboksen op igen, men det sker ikke,
isset($PHP_AUTH_USER evaluerer til true.

Har prøvet med unset($PHP_AUTH_USER) men har man først taste forkert en gang
er der ingen mulighed for at lave en ny indtastning igen. Man hænger fast i
else sætningen.

Det mystiske er det ser ud til at virke i Netscape, så jeg ved ikke om IE
cacher på en anden måde.
php dokumentationen skriver i Chapter 17. HTTP authentication with PHP:
"Both Netscape Navigator and Internet Explorer will clear the local browser
window's authentication cache for the realm upon receiving a server response
of 401" Dette synes bare ikke at ske i IE

Håber i forstår problemstillingen og har evt ideer til løsning.

På forhånd mange tak

Henrik


<?php
if(!isset($PHP_AUTH_USER)) {
Header("WWW-Authenticate: Basic Login=\"Password needed\"");
Header("HTTP/1.0 401 Unauthorized");
echo "Text to send if user hits Cancel button\n";
exit;
}
else{
$user_passwords = array (
// user1 is the login name and password1
// is that users password. Add as many
// lines as you like.
"user1" => "password1",
"user2" => "password2",
"user3" => "password3",
"user4" => "password4"
);

if (strcmp($user_passwords[$PHP_AUTH_USER],$PHP_AUTH_PW) == 0) {
// This is the page that should be password protected.
echo "This is the password protected page.";
exit;
}
else {
Header("HTTP/1.0 401 Unauthorized");
echo "Sorry, could not find your password!";

# har prøvet med dette ;
# unset($PHP_AUTH_USER) eller unset($GLOBALS['$PHP_AUTH_USER']);

# echo("<META HTTP-EQUIV=\"REFRESH\" CONTENT=\"0;url=psw.php\">");

exit;
}
}
?>





 
 
Søg
Reklame
Statistik
Spørgsmål : 177557
Tips : 31968
Nyheder : 719565
Indlæg : 6408868
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste