Моя проблема заключается в том, что когда я проголосую за, например, последний вариант в опросе, файл .txt с ответами на опрос получает пустую строку, которая разрушает мой график, который генерируется после голосования.Опрос на PHP не правильно сохраняет голоса в txt-файле
Если вы хотите, вы можете проверить сайт here
Мой .txt файл выглядит следующим образом, каждая строка каждой позиции пула.
0
0
0
0
0
Мой index.php
<html>
<head>
<title>Ankieta</title>
<meta charset="utf-8">
</head>
<body>
Oceń poziom nauczania na swojej uczelni:
<form action="send.php" method="GET" >
<input type=radio name=1 value="1" checked>2<br>
<input type=radio name=1 value="2">3<br>
<input type=radio name=1 value="3">4<br>
<input type=radio name=1 value="4">5<br>
<input type=radio name=1 value="5">Nie wiem<br>
<input type=submit value="Wyślij"/>
</form>
</body>
</html>
Мой send.php Я думаю, что что-то может быть неправильно здесь.
<html>
<head>
<title>Ankieta</title>
<meta charset="utf-8">
</head>
<body>
<?php
if(!empty($_COOKIE['glos'])) {
echo "Głos już oddano! Spróbuj za 40 sekund.";
} else {
echo " Dziękuję za głos! Zagłosowano na: ";
$wyniki=file("wyniki.txt");
switch($_GET['1']) {
case "1":
$wyniki[0]=$wyniki[0]+1;
echo "2";
break;
case "2":
$wyniki[1]=$wyniki[1]+1;
echo "3";
break;
case "3":
$wyniki[2]=$wyniki[2]+1;
echo "4";
break;
case "4":
$wyniki[3]=$wyniki[3]+1;
echo "5";
break;
case "5":
$wyniki[4]=$wyniki[4]+1;
echo "Nie wiem";
break;
}
$koncowo=$wyniki[0]."\n".$wyniki[1].$wyniki[2].$wyniki[3].$wyniki[4];
file_put_contents('wyniki.txt',$koncowo);
}
setcookie("glos", 1, time()+40);
?>
<BR>
<form action="http://nwwnd.cba.pl/ankieta/wyniki.php">
<input type="submit" value="Wyniki" />
</form>
</body>
</html>
Мой wynik.php файл
<?
$wysokosc = 600;
$szerokosc = 700;
$graph = ImageCreate($szerokosc, $wysokosc);
$bialy = ImageColorAllocate($graph,255,255,255);
$czarny = ImageColorAllocate($graph,0,0,0);
$rozowy = ImageColorAllocate($graph,255,233,241);
$czerwony = ImageColorAllocate($graph,255,0,0);
$fiolet = ImageColorAllocate($graph,148,0,254);
$niebieski = ImageColorAllocate($graph,0,0,255);
$wyniki=file("wyniki.txt");
$wynik1=$wyniki[0];
$wynik2=$wyniki[1];
$wynik3=$wyniki[2];
$wynik4=$wyniki[3];
$wynik5=$wyniki[4];
$wszystko=$wynik1+$wynik2+$wynik3+$wynik4+$wynik5;
$szer1=600*$wynik1/$wszystko;
$szer2=600*$wynik2/$wszystko;
$szer3=600*$wynik3/$wszystko;
$szer4=600*$wynik4/$wszystko;
$szer5=600*$wynik5/$wszystko;
Imagefilledrectangle($graph,0,0,$szerokosc,$wysokosc,$bialy);
Imagerectangle($graph,1,1,($szerokosc-2),($wysokosc-2),$czarny);
Imagefilledrectangle($graph,30,100,($szer1+30),130,$rozowy);
Imagefilledrectangle($graph,30,200,($szer2+30),230,$czerwony);
Imagefilledrectangle($graph,30,300,($szer3+30),330,$fiolet);
Imagefilledrectangle($graph,30,400,($szer4+30),430,$niebieski);
Imagefilledrectangle($graph,30,500,($szer5+30),530,$czarny);
Imagestring ($graph,4,($szer1+40), 100 , $wynik1 , $czarny);
Imagestring ($graph,4,($szer2+40), 200 , $wynik2 , $czarny);
Imagestring ($graph,4,($szer3+40), 300 , $wynik3 , $czarny);
Imagestring ($graph,4,($szer4+40), 400 , $wynik4 , $czarny);
Imagestring ($graph,4,($szer5+40), 500 , $wynik5 , $czarny);
Imagestring ($graph,2,30, 80 , "2" ,$czarny);
Imagestring ($graph,2,30, 180 , "3" ,$czarny);
Imagestring ($graph,2,30, 280 , "4",$czarny);
Imagestring ($graph,2,30, 380 , "5",$czarny);
Imagestring ($graph,2,30, 480 , "Nie wiem",$czarny);
imagettftext ($graph,20,0,300,60,$czarny,"arial.ttf","Ankieta");
Header("Content-type: image/png");
ImagePng($graph);
ImageDestroy($graph);
?>
Когда я голосую за 5 вариант wyniki.txt выглядит, как показано ниже
0
0
0
0
1
Что не так? Куда приходит эта пустая строка?
Удалите '' \ n "' в этой строке '$ koncowo = $ wyniki [0]." \ N "' –
Спасибо, сэр очень! –
Если ответ решил вашу проблему, подумайте о принятии ответа. Вот как http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work, затем вернитесь сюда и сделайте то же самое с отметкой галочки/галочки, пока он не станет зеленым. Это сообщает об этом сообществу, решение найдено. В противном случае другие могут подумать, что вопрос все еще открыт и может захотеть опубликовать (более) ответы. Вы будете зарабатывать очки, а другие будут рады помочь вам. * Добро пожаловать в Stack! * –