2016-04-29 7 views
4
<?php 
    if (!isset($_SERVER['PHP_AUTH_USER'])) { 
     header('WWW-Authenticate: Basic realm="My Realm"'); 
     header('HTTP/1.0 401 Unauthorized'); 
     echo 'Text to send if user hits Cancel button'; 
     exit; 
    } else { 
     echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>"; 
     echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as your password.</p>"; 
    } 
?> 

Ich benutze diesen Code, der einfach nach Benutzername und Passwort für die Authentifizierung fragen, aber die Frage ist, wenn Benutzer auf Abbrechen Schaltfläche klicken, es soll Authentifizierungsaufforderung immer wieder geben, bis Benutzername und Passwort ist nicht vorgesehen.Http Authentifizierung, Cancel Schleife

+1

esc am http Grund prompt schlägt dazu neigt, die Anforderung abzubrechen, die die Eingabeaufforderung verursacht, was bedeutet, es gibt nichts, was Sie tun können, um etwas im Client auszulösen, weil es jetzt von Ihnen getrennt ist. –

+0

Ich verstehe Marc, aber meine Sorge ist, wenn ESC gedrückt wird oder Abbrechen ist in diesem Fall auch ich will prompt wieder erscheinen, die ich irgendwo gesehen habe, und es ist möglich, aber ich weiß nicht, wie dieser Kerl es erreicht. –

Antwort

3

Eine einfache Lösung kann implementiert werden, vorausgesetzt, Ihre Kunden haben alle JavaScript.

Statt echo 'Text to send if user hits Cancel button';:

echo '<script>window.location.reload();</script>'; 
+0

Können Sie mir einen kleinen Code zur Verfügung stellen, um dies zu erreichen? Ich habe versucht es gibt es Seite kann nicht zu sich selbst umleiten –

+0

Updated zu einer funktionierenden Lösung. Ich habe das getestet, es funktioniert: https://pgmann.cf/test –

+0

(Beachten Sie, dass der Testlink nach https://pgmann.cf/so/36946358/ verschoben wurde.) –

0

Ich denke

header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']); 
exit(); 

in PHP arbeiten würde