Przy wykonywaniu skryptu:
<?php /********************************************* Zapytanie bazy danych odczytujšce wynik ankiety *********************************************/ // pobranie głosu z formy $glos=$_REQUEST['glos']; // zalogowanie w bazie danych if(!$bd_polacz=new mysqli('localhost', 'marcin', 'marcin', 'ankieta')) { exit; }; { $zapytanie="update wyniki_ankiety set ilosc_glosow = ilosc_glosow + 1 where kandydat = '$glos'"; if(!($wynik=@$bd_polacz->query($zapytanie))) { exit; } }; // pobranie aktualnych wyników ankiety, niezależnie od faktu głosowania $zapytanie='select * from wyniki_ankiety'; if(!($wynik=@$bd_polacz->query($zapytanie))) { exit; }; $ilosc_kandydatow=$wynik->num_rows; // obliczenie całkowitej liczby głosów $ilosc_glosow=0; while ($rzad=$wynik->fetch_object()) { $ilosc_glosow+=$rzad->ilosc_glosow; } $wynik->data_seek(0); // wyzerowanie wska_nika wyniku /********************************************* Poczštkowe obliczenia wykresu *********************************************/ // ustawienie stałych $szerokosc=500; //szerokosc obrazka w pikselach - ta zmie_ci się w rozdzielczo_ci 640x480 $lewy_margines=50; // miejsce pozostawiane po lewej stronie obrazka $prawy_margines=50; // to samo dla strony prawej $wysokosc_slupka=40; $odleglosc_slupkow=$wysokosc_slupka/2; $czcionka='ARIAL.TTF'; $rozmiar_tytulu=16; // w stopniach $rozmiar_podstawowy=12; // w stopniach $rozmiar_maly=12; // w stopniach $wciecie_tekstu=10; //odległo_ć lewych etykiet tekstowych od lewej krawędzi obrazka // ustawienie poczštkowego punktu rysowania $x=$lewy_margines+70; //miejsce narysowania bazy wykresu $y=50; //to samo $jednostka_slupka=($szerokosc-($x+$prawy_margines))/100; //jeden "stopień" wykresu // obliczenie wysoko_ci wykresu - słupki plus przerwy plus pewien margines $wysokosc=$ilosc_kandydatow*($wysokosc_slupka+$odleglosc_slupkow)+50; /********************************************* Konfiguracja podstawowego obrazka *********************************************/ // stworzenie pustego kadru $ob=imagecreateTrueColor($szerokosc, $wysokosc); // Przydzielenie kolorów $bialy=ImageColorAllocate($ob,255,255,255); $niebieski=ImageColorAllocate($ob,0,64,128); $czarny=ImageColorAllocate($ob,0,0,0); $rozowy=ImageColorAllocate($ob,255,78,243); $kolor_tekstu=$czarny; $kolor_procentow=$czarny; $kolor_tla=$bialy; $kolor_linii=$czarny; $kolor_slupka=$niebieski; $kolor_liczb=$rozowy; // stworzenie "kadru" do rysowania ImageFilledRectangle($ob,0,0,$szerokosc-1,$wysokosc-1,$kolor_tla); // narysowanie konturów wokół kadru ImageRectangle($ob,0,0,$szerokosc-1,$wysokosc-1,$kolor_linii); // dodanie tytułu $tytul='Wyniki ankiety'; $wymiary_tytulu=ImageTTFBBox($rozmiar_tytulu, 0, $czcionka, $tytul); $dlugosc_tytulu=$wymiary_tytulu[2]-$wymiary_tytulu[0]; $tytul_x=($szerokosc-$dlugosc_tytulu)/2; // wy_rodkowanie w x $tytul_y=($y-$wysokosc_tytulu)/2+$tytul_nad_linia; // wy_rodkowanie w y ImageTTFText($ob, $rozmiar_tytulu, 0, $tytul_x, $tytul_y, $kolor_tekstu, $czcionka, $tytul); // narysowanie bazy od nieco ponad pozycjš pierwszego słupka do nieco // poniżej pozycji ostatniego ImageLine($ob, $x, $y-5, $x, $wysokosc-15, $kolor_linii); /********************************************* Umieszczenie danych na wykresie *********************************************/ // Pobranie każdej linii bazy danych i narysowanie odpowiadajšcych słupków while ($rzad=$wynik->fetch_object()) { if($ilosc_glosow>0) else $procent=0; // wy_wietlenie procentów dla tej warto_ci $wymiary_procentow=ImageTTFBbox($rozmiar_podstawowy, 0, $czcionka, $procent.'%'); $dlugosc_procentow=$wymiary_procentow[2]-$wymiaryprocentow[0]; ImageTTFText($ob,$rozmiar_podstawowy, 0, $szerokosc-$dlugosc_procentow-$wciecie_tekstu, $y+($wysokosc_slupka/2), $kolor_procentow, $czcionka, $procent.'%'); // długo_ć słupka dla tej warto_ci $dlugosc_slupka=$x+($procent*$jednostka_slupka); // narysowanie słupka dla tej warto_ci ImageFilledRectangle($ob, $x, $y-2, $dlugosc_slupka, $y+$wysokosc_slupka, $kolor_slupka); // narysowanie tytułu dla tej warto_ci ImageTTFText($ob, $rozmiar_podstawowy, 0, $wciecie_tekstu, $y+($wysokosc_slupka/2), $kolor_tekstu, $czcionka, "$rzad->kandydat"); // narysowanie konturu pokazujšcego 100% ImageRectangle($ob, $dlugosc_slupka+1, $y-2, ($x+(100*$jednostka_slupka)), $y+$wysokosc_slupka, $kolor_linii); // wy_wietlenie liczb ImageTTFText($ob, $rozmiar_maly, 0, $x+(100*$jednostka_slupka)-50, $y+($wysokosc_slupka/2), $kolor_liczb, $czcionka, $rzad->ilosc_glosow.'/'.$ilosc_glosow); // przesunięcie do następnego słupka $y=$y+($wysokosc_slupka+$odleglosc_slupkow); } /********************************************* Wy_wietlenie obrazka *********************************************/ ImagePNG($ob); /********************************************* Zwalnianie zasobów *********************************************/ ImageDestroy($ob); ?>
Dostaję całą masę krzaków:
Kod
ÄńsćĚ!"ŁŃ8jˇoß˝sçβeËíŻéŇĽK.íëëűꍯÚŰŰ[[[ťťť-8fÜJěýôéÓNNN
Czy jest to wina konfiguracji? Mógłby mi ktoś z tym pomóc?
Z góry dziękuję.