簡體   English   中英

HTTP驗證,PHP 5.3

[英]http authentication, php 5.3

我喜歡對一些非關鍵頁面進行簡單的http身份驗證。

<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
  header('WWW-Authenticate: Basic realm="My Realm"');
  header('HTTP/1.0 401 Unauthorized');
  echo 'Text, der gesendet wird, falls der Benutzer auf Abbrechen drückt';
  exit;
} else {
  echo "<p>Hallo {$_SERVER['PHP_AUTH_USER']}.</p>";
  echo "<p>Sie gaben {$_SERVER['PHP_AUTH_PW']} als Passwort ein.</p>";
}
?>

現在,我試圖用php 5.3在服務器上實現它,但它不起作用。 怎么了?

我輸入名稱和密碼,按Enter鍵,頁面再次顯示對話框。 $ _SERVER ['PHP_AUTH_USER']中沒有值。

我遇到了同樣的問題。 根據我的服務提供商的說法,這是php的舊版本,不能在php 5.5及更高版本上使用。 您將必須找到更新版本的php。

從php.net上的“ HTTP Authentication with PHP”頁面:

從PHP 4.3.0開始,為了防止某人編寫腳本來顯示通過傳統外部機制進行身份驗證的頁面的密碼,如果對該特定頁面啟用了外部身份驗證且安全,則將不設置PHP_AUTH變量模式已啟用。 無論如何,REMOTE_USER均可用於標識外部認證的用戶。 因此,您可以使用$ _SERVER ['REMOTE_USER']。

也許這適用於這種情況。 (只是注意到這是一個老問題:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM