2017-07-07 180 views
1

我有一個HTML腳本,其中包含一個表單,此表單將一個Name值提交給一個PHP腳本。在這個PHP腳本中,我打開兩個不同的文本文件,第一個文件是獲取內部數字,然後將其增加1.另一個文件將打開,然後將新遞增的數字與Post中的Name值一起寫入。 其中只有一個數字的第一個文件開始在「0」,這是我有問題的地方。當運行代碼時,什麼都不會發生,表單被完美地提交併調用PHP腳本。但是兩個不同文本文件中唯一的值是「0」。相反,它應該在「amount.txt」文件中有「1」,在「textContent.txt」文件中應該有「Text to appear:1 Other text:Name」。在一個文本文件中增加值並將文本寫入另一個

我不完全確定我錯在哪裏,對我來說這似乎理論上是正確的。

下面是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

相關問題