2016-05-14 3 views
1

Я хотел бы экспортировать данные в json-файл. Это была бы простая страница регистрации. меня ДАННЫЕ, но я не могу экспортировать их, потому что у меня есть 3 параметра:Как экспортировать массив с тремя параметрами в файл json?

-username -Е -Password

<html> 
    <body marginleft="auto" marginright="auto" marginwidth="500px" > 
     <form method="post"> 
     Username: 
     <input type="text" name="username" placeholder="Username"> 
     <br> 
     Email: 
     <input type="text" name="email" placeholder="Email"> 
     <br> 
     Password: 
     <input type="text" name="password" placeholder="Password"> 
     <br> 

     <?php 
     $allDatas = json_decode(file_get_contents('data.json'), true); 
     $usernames = array(); 
     $passwords = array(); 
     $emails = array(); 

     foreach ($allDatas as $data) { 
      array_push($usernames, $data[0]); 
     } 
     foreach ($allDatas as $data) { 
      array_push($passwords, $data[1]); 
     } 
     foreach ($allDatas as $data) { 
      array_push($emails, $data[2]); 
     } 

     if (isset($_POST['email']) && isset($_POST['password']) && isset($_POST['username'])) { 
      $username = $_POST['username']; 
      $password = $_POST['password']; 
      $email = $_POST['email']; 
      $foundedUser = false; 

      foreach ($usernames as $key => $value) { 
       if ($value == $username) { 
        echo "Error: Username exsists;"; 
       } 
      } 
      foreach ($emails as $key => $value) { 
       if ($value == $email) { 
        echo "Error: Email registered;"; 
       } 
      } 

      array_push($usernames, $username); 
      array_push($passwords, $password); 
      array_push($emails, $email); 

      unset($allDatas); 
      $allDatas = array(); 
      ???? 
      } 
     } 
     ?> 
     <input type="submit" value="Registration"> 
     <br> 
    </body> 
    </html> 

Спасибо за ответы !!

+0

простой: просто создайте новый массив с '$ usernames',' $ passwords' и '$ emails', после этого json_encode их. Вы получите json с 'Username -Email -Password'. –

ответ

1

Нет необходимости создавать отдельные $usernames, $emails и $passwords массивы. Вы можете просто пройти через $allData для поиска существующих записей, соответствующих регистрации.

Во-вторых, вы должны установить $founduser, когда найдете совпадение, и убедитесь, что перед добавлением нового пользователя.

В-третьих, вы должны добавить нового пользователя в $allData, а затем записать его в файл как JSON.

<?php 
    if (isset($_POST['email']) && isset($_POST['password']) && isset($_POST['username'])) { 
     $allDatas = json_decode(file_get_contents('data.json'), true); 
     $username = $_POST['username']; 
     $password = $_POST['password']; 
     $email = $_POST['email']; 
     $foundedUser = false; 

     foreach ($allDatas as $value) { 
      if ($value[0] == $username) { 
       echo "Error: Username exsists;"; 
       $foundUser = true; 
       break; 
      } elseif ($value[2] == $email) { 
       echo "Error: Email registered;"; 
       $foundUser = true; 
       break; 
      } 
     } 
     if (!$foundUser) { 
      $allDatas[] = array($username, $email, $password); 
      file_put_contents('data.json', json_encode($allDatas)); 
     } 

     unset($allDatas); 
     } 
    } 
    ?> 
+0

В соответствии с требованиями OP я просто даю ему способ, как он может это сделать. Но вы тот, кто составляет все необходимое, что ему нужно делать, спасибо. Ты замечательный... –

0

Итак, вы хотите создать строку json из $ usernames, $ passwords и $ emails этих массивов. Вам нужно создать новый массив и вставить эти массивы в этот новый массив, после чего просто используйте json_encode, вы получите новую строку json.

За пределами вашего условия if вы должны сделать это.

У вас есть эти:

array_push($usernames, $username); 
array_push($passwords, $password); 
array_push($emails, $email); 

ли это:

$newArr = array(); 
$newArr[] = $username; 
$newArr[] = $passwords; 
$newArr[] = $emails; 

$newstring = json_encode($newArr); 

Позвольте мне знать, что вы полезны или нет.

+0

Это приведет к потере всех остальных пользователей в файле JSON. Новый пользователь должен быть добавлен в этот массив, а не заменять его. – Barmar

+0

Согласно требованию ОП, я просто даю ему способ, как он может это сделать. Но вы тот, кто составляет все необходимое, что ему нужно делать, спасибо. Вы велики ... –

Смежные вопросы