我遇到了一个问题,它只是给我一个错误,让我再试一次,它没有检查json文件
这是我的php代码:
<?php
if (isset($_SERVER["PHP_AUTH_USER"]) && isset($_SERVER["PHP_AUTH_PW"])) {
$json = file_get_contents("user-data.json");
$json_data = json_decode($json, true);
$user = $_SERVER["PHP_AUTH_USER"];
$pw = $_SERVER["PHP_AUTH_PW"];
$flag =false;
foreach ($json_data as $key => $value) {
if ($value['PHP_AUTH_USER'] == $user && $value['PHP_AUTH_PW'] == $pw) {
$flag = true;
**echo "<p>Pozdrav $user, unijeli ste $pw kao zaporku.</p>n";**
break;
}
if($flag){
header('location: index.php');
} else {
http_response_code(401);
header("WWW-Authenticate: Basic realm="SECRET"");
echo "<p>Try again.</p>n";
}
}
}
这是我的.json文件
{
"user":"admin",
"password":"admin"
},
{
"user":"login",
"password":"login"
}
它只是给我一个错误,让我再试一次,它没有检查json文件。
请添加一对方括号将您的"json数据",其中包含一组数据(多个用户名和密码对(。
因此,以下将是从json数据中获取用户名和密码的方法之一(我注释掉了file_get_contents部分,并使用字符串存储它,这样它就更直接了(
<?php
//$json = file_get_contents("./user-data.json");
$json='[{
"user":"admin",
"password":"admin"
},
{
"user":"login",
"password":"login"
},
{
"user":"stackoverflow",
"password":"goodpassword"
}
]';
$json_data = json_decode($json, true);
foreach ($json_data as $key=>$getdata) {
echo $getdata["user"] . "-" . $getdata["password"];
echo "<hr>";
}
?>
查看此沙盒中的结果(请单击执行(:
https://wtools.io/php-sandbox/b7Qv
因此,请修改以上代码以与$_SERVER["PHP_AUTH_USER"]和$_SERVER["PHP-AUTH_PW"]进行比较,以适合您的情况。因此,更改块:
$user = $_SERVER["PHP_AUTH_USER"];
$pw = $_SERVER["PHP_AUTH_PW"];
$flag =false;
foreach ($json_data as $key => $value) {
if ($value['PHP_AUTH_USER'] == $user && $value['PHP_AUTH_PW'] == $pw) {
$flag = true;
**echo "<p>Pozdrav $user, unijeli ste $pw kao zaporku.</p>n";**
break;
}
至
$user = $_SERVER["PHP_AUTH_USER"];
$pw = $_SERVER["PHP_AUTH_PW"];
$flag =false;
foreach ($json_data as $key=>$getdata) {
if ($user == $getdata["user"] && $pw == $getdata["password"]) {
$flag = true;
**echo "<p>Pozdrav $user, unijeli ste $pw kao zaporku.</p>n";**
break;
}
}