【发布时间】:2016-09-06 20:40:38
【问题描述】:
我的登录页面不像在 localhost 中那样工作。我重构了 PHP 页面和相关脚本,但在我的搜索中偶然发现 Apache-PHP-module 配置问题之前没有任何效果。
我已阅读并尝试过以下建议:
- http://php.net/manual/en/features.http-auth.php
- Why are $_SERVER["PHP_AUTH_USER"] and $_SERVER["PHP_AUTH_PW"] not set?
- PHP_AUTH_USER not set?
...但它们都不适合我。也许,我的问题是独一无二的。也许不会。
到目前为止, .htaccess 有:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
RewriteEngine On
RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{HTTP_HOST} ^genieverse.com [NC]
RewriteRule ^(.*)$ http://www.my_site.com/$1 [L,R=301]
虽然 log_in.php 有:
//Get custom error function script
require_once('Server_Includes/scripts/common_scripts/feature_error_message.php');
if(preg_match('/Basic\s+(.*)$/i', $_SERVER['HTTP_AUTHORIZATION'], $matches))
{ list($the_name, $the_password) = explode(':', base64_decode($matches[1]));
$_SERVER['PHP_AUTH_USER'] = strip_tags($the_name);
$_SERVER['PHP_AUTH_PW'] = strip_tags($the_password); }
//Filter incoming values
$username = (isset($_POST["username"])) ? trim($_POST["username"]) : "Username";
$password = (isset($_POST["password"])) ? trim($_POST["password"]) : "Password";
.....休息继续登录页面表单。
每次我输入用户名和密码然后单击提交,登录页面重新加载请求相同。就好像它们从未发送过一样。
我到底需要做什么?
PS: Web 服务器是共享主机,Apache 2.2.31,PHP 5.4.45
【问题讨论】: