2016-08-17 3 views
1

특정 버튼을 누르면 변수에 +1 또는 -1을 추가하는 스크립트가 있습니다. "+1"버튼은 완벽하게 작동하지만 변수가 "10"값을 가졌을 때 "-1"이 이상하게 작동합니다 (다른 값도 가능). 버튼을 클릭하면 "9"가 표시되는 대신 "90"이 표시됩니다.버튼 클릭 수를 계산하는 PHP 스크립트

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.

감사합니다.

답변

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); 
+0

빠른 응답을 주셔서 감사합니다. – C10H15N

관련 문제