我有一个HTML脚本,其中包含一个表单,此表单将一个Name值提交给PHP脚本。在这个PHP脚本中,我打开两个不同的文本文件,第一个文件是获取内部数字,然后将其递增1.另一个文件是打开然后写入新增加的数字以及Post中的Name值。 其中只有一个数字的第一个文件开始于" 0"这就是我遇到问题的地方。运行代码时,没有任何反应,表单被完美地提交并调用PHP脚本。但是这两个不同文本文件中唯一的值是" 0"在他们两个。相反它应该有" 1"在" amount.txt"文件和"要出现的文字:1其他文字:姓名"在" textContent.txt"文件。
我不完全确定我错在哪里,对我而言,理论上似乎是正确的。
这里是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 :(得分:1)
首先,代码中的错误:
$newAmount = $pastAmount++;
=>这将分配$pastAmount
的值,然后递增不是您要瞄准的值。$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);
答案 1 :(得分: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);
?>