我有一个脚本,当按下某个按钮时,它会向变量添加+1或-1。 “+1”按钮工作正常,但当变量的值为“10”(也可能是其他值)时,“-1”按钮会变为奇数。当我点击按钮时,它不显示“9”,而是显示“90”。
PHP:
<?php
$myfile = fopen("response.txt", "r+") or die("Unable to open file!");
$currentvalue = file_get_contents("response.txt");
$currentvalue = $currentvalue -1;
fwrite($myfile, $currentvalue);
fclose($myfile);
header( 'Location: otherfile.php' ) ;
?>
HTML
<form method="post" action="minus.php">
<button> Remove one </button>
</form>
我知道有更好的方法来完成这项任务,但考虑到我在php中的基本知识,上面的代码是我能想到的最好的代码。
感谢。
答案 0 :(得分:1)
这是因为您以r+
模式打开文件。这不会截断文件,所以当你写“9”时,你会覆盖“10”中的“1”,而该文件中的第二个字符仍然是“0”。这给你“90”。
通过不使用fopen
,fwrite
或fclose
来解决此问题:删除这些语句。而是用file_put_contents
:
$currentvalue = file_get_contents("response.txt");
$currentvalue = $currentvalue - 1;
file_put_contents("response.txt", $currentvalue);