2017-07-07 3 views
1

私はHTMLスクリプトにフォームが含まれていますが、このフォームはName値をPHPスクリプトに送ります。このPHPスクリプトでは、2つの異なるテキストファイルを開きます。最初のファイルは、数値を内部で取得し、1ずつインクリメントすることです。もう1つのファイルは、ポストからの名前の値とともに新しくインクリメントした数値を開いて書き込むことです。 最初のファイルの中に数字だけが入っていて、「0」から始まります。ここで問題が発生しています。コードを実行すると、何も起こりません。フォームは完全に提出され、PHPスクリプトが呼び出されます。しかし、2つの異なるテキストファイル内の唯一の値は、両方とも "0"です。代わりに、 "textContent.txt"ファイル内の "amount.txt"ファイルに "1"、表示するテキスト:1 Other text:Name "が必要です。1つのテキストファイルの値をインクリメントして別のテキストに書き込む

私はどこが間違っているのかは完全にはわかりませんが、理論的には正しいと思われます。

ここにはPHPの部分があります。これは機能していない部分です。

$nam = $_POST['Name']; 

$pastAmount = (int)file_get_contents('/user/site/amount.txt'); 
$fileOpen1 = '/user/site/amount.txt'; 
$newAmount = $pastAmount++; 
file_put_contents($fileOpen1, $newAmount); 

$fileOpen2 = '/user/site/textContent.txt'; 

$fileWrite2 = fopen($fileOpen2 , 'a'); 
$ordTxt = 'Text to appear: ' + $newAmount + 'Other text: ' + $nam; 
fwrite($fileWrite2, $ordTxt . PHP_EOL); 
fclose($fileWrite2); 
+0

は、連結演算子はないです '' '+'の代わりに? --- $ ordTxt = '表示するテキスト:' + $ newAmount + 'その他のテキスト:' + $ nam; – Khan

+0

@Khanはい、私はそれを考え出しました、私の間違い。ありがとうございました。 – DevLiv

答えて

1

の代わりに:

あなたが使用する必要があります
$newAmount = $pastAmount++; 

$newAmount = $pastAmount + 1; 

$ pastAmount ++は$ pastAmountの値を直接変更するためです。

あなたが使用する必要があります次に

代わりの

$ordTxt = 'Text to appear: ' + $newAmount + 'Other text: ' + $nam; 

$ordTxt = 'Text to appear: '.$newAmount.' Other text: '.$nam; 

をPHPで私たちが使用しているため。連結のために。

PHPコード:

<?php 
$nam = $_POST['Name']; 


// Read the value in the file amount 
$filename = "./amount.txt"; 
$file = fopen($filename, "r"); 
$pastAmount = fread($file, filesize($filename)); 
$newAmount = $pastAmount + 1; 
echo "Past amount: ".$pastAmount."-----New amount:".$newAmount; 
fclose($file); 

// Write the value in the file amount 
$file = fopen($filename, "w+"); 
fwrite($file, $newAmount); 
fclose($file); 


// Write your second file 
$fileOpen2 = './textContent.txt'; 
$fileWrite2 = fopen($fileOpen2 , 'w+ '); 
$ordTxt = 'Text to appear: '.$newAmount.' Other text: '.$nam; 
fwrite($fileWrite2, $ordTxt . PHP_EOL); 
fclose($fileWrite2); 
?> 
+1

お返事ありがとうございました、私はそれが欲しいと思っています。 – DevLiv

1

まず第一に、あなたのコード内のエラー:

  1. $newAmount = $pastAmount++; =>これは$pastAmountの値を代入してから、あなたが目指しているものではない値をインクリメントします。
  2. $ordTxt = 'Text to appear: ' + $newAmount + 'Other text: ' + $nam; => PHPでの連結は.なく+

正しいコードで行われます。

$nam = $_POST['Name']; 

$pastAmount = (int)file_get_contents('/user/site/amount.txt'); 
$fileOpen1 = '/user/site/amount.txt'; 
$newAmount = $pastAmount + 1; 
// or 
// $newAmount = ++$pastAmount; 

file_put_contents($fileOpen1, $newAmount); 

$fileOpen2 = '/user/site/textContent.txt'; 

$fileWrite2 = fopen($fileOpen2 , 'a'); 
$ordTxt = 'Text to appear: ' . $newAmount . 'Other text: ' . $nam; 
fwrite($fileWrite2, $ordTxt . PHP_EOL); 
fclose($fileWrite2); 
+0

あなたの答えは大変ありがとうございます。ありがとうございます。 – DevLiv

関連する問題