<div id='post' style='display: none;'>
<?php
class User {
public $id;
public $counter;
public $removed;
}
$dB = json_decode(file_get_contents('dataBase.json'), true);
$dataBase = $dB['noob'][0];
$userInDB = null;
$user = new User();
$user->id = (int)$_POST['id'];
$user->counter = (int)$_POST['counter'];
$user->removed = (bool)$_POST['removed'];
foreach ($dataBase as $usr) {
if ($usr['id'] == $user->id) {
$userInDB = $usr
break;
}
}
if ($userInDB) {
$userInDB[counter] = $userInDB[counter] + $user->counter
$userInDB[removed] = $user->removed
} else {
array_push($dataBase, $user);
}
if (isset($_POST['id'])) {
$json = json_encode($user);
echo $json;
}
$updateddB = json_encode($dB);
file_put_contents('dataBase.json', $updateddB);
?>
</div>
<div id='get' style='display: none;'>
<?php
$id = (int)$_GET['id']
$type = htmlentities($_GET['type'], ENT_QUOTES, 'UTF-8');
$dB = json_decode(file_get_contents('dataBase.json'), TRUE);
$dataBase = $dB['noob'][0];
$response = FALSE
foreach ($dataBase as $usr) {
if ($type == 'id') {
if ($usr['id'] == $user->id) {
$response = TRUE
break;
}
} else if ($type == 'counter') {
if ($user['counter'] >= 1) {
$response = TRUE
break;
} else if ($type == 'removed') {
if ($user[id]) {
$response = TRUE
break;
}
}
}
echo $response;
?>
</div>
Я не знаю, почему я получаю ошибку 500, пока что она не показала ошибку, когда я удаляю все, кроме эха. Я попытался удалить только часть с json и повторением, но это все равно ничего не дало. Я также пробовал просто удалить раздел постов на php, ничего. Я попытался удалить все, кроме эха и присвоения false утверждения, но это не сработало! Это может быть просто проблема IIS.
Я пробовал использовать другой браузер, а именно Firefox, и он вообще ничего не отображал.
Помощь! Это json на всякий случай.
{
"noob": [{
"id": 593286196,
"counter": 0,
"removed": true
},
{
"id": 256169534,
"counter": 0,
"removed": true
},
{
"id": 516105343,
"counter": 0,
"removed": true
},
{
"id": 520887461,
"counter": 0,
"removed": true
},
{
"id": 162491701,
"counter": 0,
"removed": true
},
{
"id": 352289153,
"counter": 0,
"removed": true
},
{
"id": 469971590,
"counter": 0,
"removed": true
},
{
"id": 83728091,
"counter": 0,
"removed": true
},
{
"id": 34172132,
"counter": 0,
"removed": true
},
{
"id": 35349812,
"counter": 0,
"removed": true
}
],
"igno": []
}
Я исправил JSON, где вы можете проверить журнал ошибок PHP?
См. Руководство: PHP error_reporting
Ошибка синтаксического анализа: синтаксическая ошибка, неожиданный «разрыв» (T_BREAK) в C: \ inetpub \ wwwroot \ dataBase \ data.php в строке 19
Я посмотрел туда, но не было ничего о неожиданном перерыве. О, я только что понял, что забыл точки с запятой и забыл конечную скобку smh.
$ userInDB = $ usr, если отсутствует ; ... поэтому обновите до $userInDB = $usr; в строке 17 ...
Ошибки PHP довольно просты, всегда проверяйте журнал ошибок, прежде чем делать что-то еще ...






Строковые литералы JSON должны использовать обычные двойные кавычки (""), а не умные кавычки (“”) или одинарные кавычки ('').
Пытаться:
{
"noob":[
{
"id": 593286196,
"counter": 0,
"removed": true
},
{
"id": 256169534,
"counter": 0,
"removed": true
},
{
"id": 516105343,
"counter": 0,
"removed": true
},
{
"id": 520887461,
"counter": 0,
"removed": true
},
{
"id": 162491701,
"counter": 0,
"removed": true
},
{
"id": 352289153,
"counter": 0,
"removed": true
},
{
"id": 469971590,
"counter": 0,
"removed": true
},
{
"id": 83728091,
"counter": 0,
"removed": true
},
{
"id": 34172132,
"counter": 0,
"removed": true
},
{
"id": 35349812,
"counter": 0,
"removed": true
}
],
"igno":[
]
}
Ваш JSON недействителен, проверьте его: jsonlint.com ... Что записано в вашем журнале ошибок PHP?