if (isset($_SESSION['user'])) {
$plik = 'users/'.$_SESSION['user'].'/settings.json';
$file = fopen($plik, "a+");
@fclose($plik);
$jsonString = file_get_contents($plik);
$data = json_decode($jsonString, true);
if ((isset ($_POST['s_pm'])) && $_POST['s_pm']=="on")
$data["set_friendreq"] = 1; else $data["set_friendreq"] = 0;
if (isset($_POST['dsp']))
$data["set_displayname"] = $_POST['dsp'];
$newJsonString = json_encode($data);
file_put_contents($plik, $newJsonString);
}
所有內容保存到JSON文件沒有任何問題(如set_friendreq
因爲它是一個數字),但是當我嘗試發送一個字符串,一個出現的「0」在我的JSON文件(set_displayname
)。爲什麼?JSON字符串表示爲0
JSON文件:
{"set_friendreq":0,"set_displayname":"0","lang":"2"}
你的fopen和fclose有什麼意義?您的文件處理程序不使用,fclose應該接收文件處理程序,而不是文件名。不要聽fclose錯誤,我認爲你只是將它設置爲忽略錯誤。 – Devon
您是否嘗試打印出$ _POST來查看'dsp'包含的內容?問題不在於json /文件處理。 – Devon