我正在嘗試爲網站編寫一個非常簡單的PHP投票系統。基本上,選票會記錄在一個有3行的文本文件中。每一行只是一個數字。沒有任何選票的投票文件看起來像:
PHP數組寫入錯誤
0
0
0
下面是我使用的PHP:
$file = "votes.txt";
$votes = file($file);
$votes[0] = intval($votes[0]) + 1;
$voteWrite = strval($votes[0]) . "\n" . strval($votes[1]) . "\n" . strval($votes[2]);
file_put_contents($file, $voteWrite);
所以數組保存的文本文件的每一行,如果這是代碼對第一個選項進行投票時,該行的值增加1,然後整個數組在連接成一個字符串後寫回文件,保留數組的行。理想情況下,文本文件,現在將改爲:
1
0
0
但是,相反它讀取:
10
0
有人能告訴我這是爲什麼? PHP真的不想和我一起工作... 謝謝。
編輯:
我真的不明白這個文件()的東西......這是一個測試我設置:
$file = "votes.txt";
$votes = file($file);
$option1 = $votes[0];
$option2 = $votes[1];
$option3 = $votes[2];
其次,在JavaScript:
alert(<?php echo $option1; ?>);
alert(<?php echo $option2; ?>);
alert(<?php echo $option3; ?>);
使用文本文件分別在3行中讀取28,3和49。警報返回「28」,「450」和「未定義」。我勒個去?
爲什麼你不使用數據庫? – Petah
你的'file()'命令後面顯示'var_dump($ votes)'是什麼?你的文件是否被正確讀取?此外,你在那裏有一個基本的競爭條件,並會在某個時候失去投票。 –
該網站正在通過大學服務器託管,並與大學合作以獲取網站上託管的數據庫是一場噩夢。 – cachgill