4

When I log into my router's firmware, for example, I get a prompt box for the username and password, How is this done? As far as I can tell, JavaScript's prompt() only returns one value.. I know it must be server side because the page continues to "load" until I close the box. I also cannot switch tabs in my browser until the box is closed.

Is it possible to do something like this with PHP? How is this done?

Thanks in advance

4

3 回答 3

5

它使用基本 HTTP 身份验证完成,为此您需要创建一个用户/密码文件并告诉服务器文件夹需要使用基本 HTTP 身份验证。这可以在服务器配置或 .htaccess 中完成

于 2013-08-21T13:20:48.307 回答
3

看看 PHP 文档的这个页面 - HTTP authentication with PHP

这是他们提供的示例代码:

<?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>";
}
?>

基本上,您需要做的就是发送正确的标头,客户端的浏览器将负责呈现具有正确字段的本机弹出窗口。

一旦用户提交了详细信息,您的代码就可以使用$_SERVER['PHP_AUTH_USER']$_SERVER['PHP_AUTH_PW']变量验证登录,但是您想要的。

于 2013-08-21T13:21:28.517 回答
2

作为ApacheWeb 服务器,您可以使用htaccess 密码保护来做到这一点

该协议称为http基本认证

于 2013-08-21T13:19:31.303 回答