2017-10-12 8 views
2

私はindex.phpと別のmydata.phpファイルとして1つのhtml形式を持っています。私はmydata.phpファイルにデータを入れたいのですが、いくつかの問題があります配列PHPファイルに値を追加する方法PHPでhtmlフォームを送信すると?

のindex.php

<form action="" method="POST"> 
    <input name="field1" type="text" /> 
    <input name="field2" type="text" /> 
    <input type="submit" name="submit" value="Save Data"> 
</form> 

<?php 
if (isset($_POST['field1']) && isset($_POST['field2'])) { 
    if (!filesize('mydata.php')) { 
     $data0 = '<?php $a = array(' . "\n"; 
     $ret = file_put_contents('mydata.php', $data0, FILE_APPEND | LOCK_EX); 
    } 

    $data = '"' . $_POST['field1'] . '"' . '=>' . '"' . $_POST['field2'] . '",' . "\n"; 
    $ret = file_put_contents('mydata.php', $data, FILE_APPEND | LOCK_EX); 

    if ($ret === false) { 
     die('There was an error writing this file'); 
    } else { 
     echo "$ret bytes written to file"; 
    } 
} 
?> 

mydata.php

$array = array("a"=>"b"); 

私は私が必要とする新しい価値を提出する追加すると投稿データのように新しい配列をプッシュ

Array 
(
    [field1] => c 
    [field2] => d 
    [submit] => Save Data 
) 

$array = array("a"=>"b","c"=>"d"); 
+0

あなたはこのようにそれを行うことができます:JSONファイルで

例 '$データ[$ _ POST [ 'フィールド1']] = $ _POST [ 'フィールド2']あなたがDBを使用しないのはなぜ' – Saani

+0

(MySQLまたはSQLite)?ファイルにデータを格納する場合は、JSONを使用することをお勧めします。 – Neodan

+0

@ Sai OPは、データを 'mydata.php'ファイルに追加(保存)します。 – Neodan

答えて

2

を試みることができます。 PHPファイルと

例:

<?php 
// data for the form ($_POST), all data from the client (browser) MUST be validated and sanitized 
$formData = [ 
    'field1' => 'c', 
    'field2' => 'd' 
]; 

// load mydata.php if it was not loaded before 
require_once 'mydata.php'; 

// add new data or update existen 
$array = array_merge($array, $formData); 
$tab = ' '; 

// generate the new content for the mydata.php file 
$newContent = '<?php' . PHP_EOL . '$array = [' . PHP_EOL; 
foreach ($array as $key => $value) 
    $newContent .= $tab . "'$key' => '" . addslashes($value) . "'," . PHP_EOL; 

$newContent .= '];' . PHP_EOL; 

//save the new content into file 
file_put_contents('mydata.php', $newContent); 

しかし、私は本当にのためのJSONファイルを使用して、あなたにお勧めします。

<?php 
// data for the form ($_POST), all data from the client (browser) MUST be validated and sanitized 
$formData = [ 
    'field2' => 'c', 
    'field3' => 'd' 
]; 

$array = []; 

// load data 
if (file_exists('mydata.json')) 
    $array = json_decode(file_get_contents('mydata.json'), true); 

// add new data or update the existen 
$array = array_merge($array, $formData); 

// save the new data into file 
file_put_contents('mydata.json', json_encode($array), LOCK_EX); 
+0

回答ありがとうございましたneodan –

+0

そのうまく動作しています –

+0

@DivyeshSigmateは答えをマークするのを忘れないでください。他の方法ではこの質問は今後役に立たないからです。 – Neodan

1

私はあなたの質問が明確ではないので、あなたが何を求めているのかは分かりませんが私はあなたの既存のアレイに新しいキーと値のペアを追加するために、右のそれを取得していた場合、あなたはただ、$arrayにデータを追加するPHPコードを生成して、それをファイルに保存する必要が

$field1 = $_POST['field1']; // $field1 = "c" 
$field2 = $_POST['field2']; // $field2 = "d" 

$array[$field1] = $field2; 
関連する問題