【发布时间】:2014-11-18 01:11:11
【问题描述】:
我正在使用一些 php + mysql 和用户身份验证。我已经实现了这个:
<?php
if (!isset($_SERVER['PHP_AUTH_USER']))
{
header('WWW-Authenticate: Basic realm="Administrator"');
header('HTTP/1.0 401 Unauthorized');
echo 'Username and password are required to view this page';
exit;
}
else
{
if(isset($_ENV["OPENSHIFT_MYSQL_DB_HOST"]))
{
$conn = mysql_connect($_ENV["OPENSHIFT_MYSQL_DB_HOST"].':'.$_ENV["OPENSHIFT_MYSQL_DB_PORT"],
$_ENV["OPENSHIFT_MYSQL_DB_USERNAME"],
$_ENV["OPENSHIFT_MYSQL_DB_PASSWORD"]) or die(mysql_error());
}
else
{
$conn = mysql_connect("localhost", "user", "pass") or die(mysql_error());
}
mysql_select_db("db", $conn) or die(mysql_error());
$sqlquery = "SELECT * FROM admin_users";
$result = mysql_query($sqlquery, $conn) or die(mysql_error());
$access_granted = 0;
while($user = mysql_fetch_array($result))
{
if ($_SERVER['PHP_AUTH_USER'] == $user['user_name'] &&
$_SERVER['PHP_AUTH_PW'] == $user['password'])
{
$access_granted++;
}
}
if(!$access_granted)
{
header('WWW-Authenticate: Basic realm="Administrator"');
header('HTTP/1.0 401 Unauthorized');
echo "Invalid username and/or password";
exit;
}
}
?>
用户、通行证、表格等正确但无法正常工作,没有重定向但也没有错误
我做错了吗?
【问题讨论】:
-
你打开错误报告了吗? (
<?php error_reporting(E_ALL); ini_set("display_errors", 1); ?>) -
这可能是因为其中一个结果验证了您的
if条件并使access_grantedNON 0,因此您在同一页面上 -
我忘了说我在 apache 服务器上运行,如果在 wamp 本地设置它可以正常工作,但不能在我的服务器上运行
-
@bSaraogi 是的,所有应用程序的页面始终相同
标签: php mysql .htaccess cgi authentication