Tôi đang cố gắng sử dụng Basic HTTP Authentication và làm theo ví dụ trên trang hướng dẫn sử dụng PHP. Nhưng nó không hiệu quả với tôi. Biến số $_SERVER['PHP_AUTH_USER']
dường như không được đặt. Khi người dùng cố gắng đăng nhập, người dùng sẽ được nhắc với hộp thoại đăng nhập mới. Máy chủ đang chạy PHP 5.3.3 và tôi đã thử với Google Chrome và Internet Explorer.Tôi làm cách nào để sử dụng Xác thực HTTP cơ bản trong PHP?
Dưới đây là ví dụ đơn giản mà tôi đã sử dụng:
<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header('WWW-Authenticate: Basic realm="Jonas Realm"');
header('HTTP/1.0 401 Unauthorized');
echo 'User pressed Cancel';
exit;
} else {
echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as you password.</p>";
}
?>
Điều gì là sai? Làm cách nào để sử dụng Xác thực HTTP cơ bản trong PHP?
Thay vì cố gắng thực hiện điều này với PHP, tại sao bạn không sử dụng máy chủ web, ví dụ: http://httpd.apache.org/docs/2.2/howto/auth.html – Phil
@James: Tôi nghĩ rằng trang web của mình máy chủ sử dụng Apache. – Jonas
@Phil: Sau đó mã PHP của tôi sẽ bị từ chối của máy chủ web của tôi và tôi không thể thay đổi easyli sang một máy chủ web khác. Tôi muốn tuân theo tiêu chuẩn HTTP. – Jonas