2016-12-15 11 views
1

나는 내 웹 사이트에 투표 '설문 조사'를하고 결과를 저장하기 위해 텍스트 파일을 사용합니다. 기본적으로 기존 결과를 읽고 새로운 결과를 증가시키고 다시 저장합니다.PHP 텍스트 파일 쓰기 및 읽기

그러나 파일을 읽은 다음 파일을 저장하는 것으로 보입니다. 하지만 나중에 다시 확인하기 위해 데이터를 다시 읽을 때 파일이 제대로 저장되지 않은 것으로 보입니다 ... 내가 쓴 것이 확실하지 않고 방문자 카운터가 있으므로 읽기/쓰기가 가능한 웹 서버 권한이 있어야합니다. 텍스트 파일 텍스트 파일 형식으로 저장됩니다

<?php 
$vote = $_REQUEST['vote']; 

//open file read current votes 
$contents = file("poll_result.txt"); 

//put content in array, split between the ; 
$array = explode(";", $contents[0]); 
$yes = $array[0]; 
$no = $array[1]; 

echo("Opened file and read contents. YES-" . $yes . " NO-" . $no . "<br>"); 

//Check if it's a yes or no vote 
if ($vote == 0) 
{ 
    $yes = $yes + 1; 
    echo("Incremented yes vote, it is now" . $yes . "<br>"); 
} 

if ($vote == 1) 
{ 
    $no = $no + 1; 
    echo("Incremented no vote, it is now" . $no . "<br>"); 
} 

//insert new votes to txt file 
$insertvote = $yes. ";". $no; 

echo("To insert: " . $insertvote . "<br>"); 

$wfile = fopen('poll_result.txt', w); 
fputs($wfile, $insertvote); 

echo("Done."); 

////////////////////////////////////////////////// 

//open file read current votes 
$contents = file("poll_result.txt"); 

//put content in array, split between the || 
$array = explode(";", $contents[0]); 
$yes = $array[0]; 
$no = $array[1]; 

echo("Re-read data: " . $yes . "|" . $no); 

?> 

: 여기

는 코드 poll_vote.php입니다 0; 당신은 제대로 디스크에 기록 할 파일을 닫아야합니다 0

+1

오류보고를 사용합니다. 보고 된 오류가 있습니까? 파일을 검사하십시오. 마지막으로 수정 한 날짜가 업데이트되고 있습니까? 팁 : 파일 이름을 변수에 넣고 everyplace의 "poll_results.txt"를 하드 코딩하지 말고 .... –

+2

또한이 폴링이 얼마나 바쁜지에 따라 이미 열려있는 경우 파일에 액세스하는 문제가 발생할 수 있습니다 쓰기. 잠재적으로 데이터가 손실 될 수 있습니다. –

+0

'w'에 따옴표가 없습니다. 그리고 파일을 닫지 않습니다. –

답변

0

시도

fputs($wfile, $insertvote); 
fclose($wfile); //close the file 
echo("Done."); 
+0

위의 다른 것들도 마찬가지로 고쳐 졌는지 확실하지 않지만 지금은 효과가 있습니다 –