Файл .json обнуляется - PullRequest
       24

Файл .json обнуляется

0 голосов
/ 04 марта 2019

Я пытаюсь создать небольшую систему регистрации пользователей с использованием html и php.Я пытаюсь сохранить все введенное имя пользователя в файл json.Вот мой код

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
<form action="reg.php" method="post">
  Username: <input type="text" name="username">
  Password: <input type="text" name="password">
  <input type="submit">

</form>


<?php

$myFile = "data.json";
   $arr_data = array(); // create empty array

  try
  {
       //Get form data
       $formdata = array(
          'firstName'=> $_POST['username'],
       );

       //Get data from existing json file
       $jsondata = file_get_contents($myFile);

       // converts json data into array
       $arr_data = json_decode($jsondata, true);

       // Push user data to array
       array_push($arr_data,$formdata);

       //Convert updated array to JSON
       $jsondata = json_encode($arr_data, JSON_PRETTY_PRINT);

       //write json data into data.json file
       if(file_put_contents($myFile, $jsondata)) {
            echo 'Data successfully saved';
        }
       else
            echo "error";

   }
   catch (Exception $e) {
            echo 'Caught exception: ',  $e->getMessage(), "\n";
   }





 ?>




  </body>
</html>

Но он всегда говорит

Предупреждение: array_push () ожидает, что параметр 1 будет массивом, значение NULL указано в C: \ Users \ XooT \ PHP \ User_database \ reg.php on line 35

Что я могу сделать и в чем проблема?Кто-нибудь может мне помочь

1 Ответ

0 голосов
/ 04 марта 2019

Ошибка означает, что $arr_data в вашем array_push($arr_data, $formdata); является пустой строкой.

Возможно, путь к существующему файлу JSON неправильный?

Проверьте, что находится в переменной $jsondata, набрав print_r($jsondata)

...