2012-09-24 36 views
6

Tôi đã cố gắng cập nhật phiên bản php của VPS nhưng nó không hoạt động và nhà cung cấp của tôi không hỗ trợ tốt cho tôi, vì vậy tôi hạ cấp nó xuống phiên bản trước.

Tôi hiện đang làm việc với PHP 5.2.17 (cli). Mọi thứ đều hoạt động bình thường trong phiên bản này.

Kể từ khi nâng cấp và hạ cấp này, biến số $_SERVER['PHP_AUTH_USER'] trống. (Trong php.ini, register_globals là 'bật' và $_SERVER['PHP_SELF'] hoạt động chính xác).

Nó hỏi tôi đúng tên người dùng và mật khẩu của tôi và tôi thành công để kết nối nhưng tôi cần phải sử dụng $_SERVER['PHP_AUTH_USER'].

Tôi đã thử $_SERVER['PHP_AUTH_USER'], $_SERVER['AUTH_USER'], $_SERVER['REMOTE_USER'] không có hạt nào hoạt động. (nhưng im không bao giờ nhận được bất kỳ lỗi nào, chỉ một giá trị trống ...)

Trả lời

12

cuối cùng tôi đã tìm thấy câu trả lời nhờ 'mbinette'.

Trong cấu hình PHP của tôi, trình xử lý PHP 5 là CGI và loại xác thực này không hoạt động với PHP CGI. Vì vậy, tôi đã thay đổi nó thành suPHP (được cho là mặc định trên APACHE).

Find here bài đăng giải thích cách sử dụng CGI và PHP_AUTH, nhưng tôi đã thử và không hoạt động.

Find here một số giải thích về bộ xử lý php

+0

Rất vui khi bạn tìm thấy giải pháp! Tôi thành thật không có bất kỳ ý tưởng nào khác về những gì nó có thể (vấn đề duy nhất tôi từng có về điều đó là vì chế độ an toàn) ..! Chúc mừng! – mbinette

+0

Cảm ơn bạn đã trợ giúp! – BastienSander

+0

Các liên kết không hoạt động –

3

Chế độ an toàn có được kích hoạt không? Đó có thể là vấn đề của bạn ...

Tính đến PHP 4.3.0, để tránh người khác viết một kịch bản mà tiết lộ mật khẩu cho một trang đó được xác nhận thông qua một cơ chế bên ngoài truyền thống, PHP_AUTH các biến sẽ không được đặt nếu xác thực bên ngoài được bật cho trang cụ thể đó và bật chế độ an toàn là . Bất kể, REMOTE_USER có thể được sử dụng để xác định người dùng được xác thực bên ngoài. Vì vậy, bạn có thể sử dụng $ _SERVER ['REMOTE_USER'].

Nguồn: http://php.net/manual/en/features.http-auth.php

+0

Trong file php.ini của tôi, tôi có: safe_mode = Off – BastienSander

+0

Bạn có chắc chắn vấn đề xuất phát từ PHP? (và không phải cái gì như thế này: http://stackoverflow.com/questions/5037046/serverphp-auth-user-empty?). Ngoài ra, bạn có thể chắc chắn rằng error_reporting được bật và rằng không có lỗi nào bị ném trước đó? – mbinette

+0

error_reporting = E_ALL & ~ E_NOTICE và display_errors = trên – BastienSander

Các vấn đề liên quan