只是試圖計算按鈕被點擊的次數,將其記錄到文件中,以便適用於所有人。它正在讀取文件,但沒有寫入。想法?用PHP計算按鈕點擊次數
<form action='' method="post">
<input type="submit" name="submit" value="Tweet it!" onclick="genTweet()"/>
</form>
<br>
<?php
$f = fopen('counter.txt', 'r+'); // use 'r+' instead
flock($f, LOCK_EX); // avoid race conditions with concurrent requests
$total = (int) fread($f, max(1, filesize('counter.txt'))); // arg can't be 0
/*if someone has clicked submit*/
if (isset($_POST['submit'])) {
rewind($f); // move pointer to start of file so we overwrite instead of append
fwrite($f, ++$total);
}
fclose($f);
?>
This button has been clicked <?php echo $total; ?> times.
我會避免使用此文件。我會切換到數據庫解決方案。如果兩個人同時點擊該按鈕,可能會出現差異。 – QuinnFTW 2014-08-30 20:57:25
檢查以確保文件具有正確的寫入權限。通常644會做,但作爲最後的手段,嘗試777.雖然不推薦777,但你可以嘗試兩種。 – 2014-08-30 21:09:25
@QuinnFTW雖然我同意使用DB,但OP使用文件鎖定「LOCK_EX」。 – 2014-08-30 21:12:50