<?php /************************ odczytuje wyniki z bazy ******************/ //pobranie glosu z formularza $glos=$_REQUEST['glos']; //zalogowanie w bazie danych if(!$bd_polacz=new mysqli('localhost','ankieta','ankieta','ankieta')) { exit; }; { $zapytanie="update wyniki_ankiety set ilosc_glosow = ilosc_glosow + 1 where kandydat = '$glos'"; if(!($wynik=@$bd_polacz->query($zapytanie))) { exit; } }; //pobieranie wynikow ankiety niezaleznie od faktu glosowania $zapytanie='select * from wyniki_ankiety'; if(!($wynik=@$bd_polacz->query($zapytanie))) { exit; }; $ilosc_kandydatow=$wynik->num_rows; //obliczanie calkowitej liczby glosow $ilosc_glosow=0; while ($rzad=$wynik->fetch_object()) { $ilosc_glosow+=$rzad->ilosc_glosow; } $wynik->data_seek(0);//wyzerowanie wskaznika wyniku /***************** rysowanie wynikow ***************/ //ustawienie stalych $szerokosc=500; //szerokosc obrazka w pikselach $lewy_margines=50; //miejsce po lewej stronie obrazka $prawy_margines=50; //prawy margines $wysokosc_slupka=40; $odleglosc_slupkow=$wysokosc_slupka/2; $czcionka='arial'; $rozmiar_tytulu=16; // w stopniach $rozmiar_podstawowy=12; $rozmiar_maly=12; $wciecie_tekstu=10; //odleglosc lewych etykiet od lewej krawedzi obrazka //ustawienie poczatkowego punktu rysowania $x=$lewy_margines+70; //miejsce narysowania bazy wykresu $y=50; $jednostka_slupka=($szerokosc-($x+$prawy_margines))/100; //jeden stopien wykresu //obliczenie wysokosci wykresu -slupki + przerwy + 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ól kadru ImageRectangle($ob,0,0,$szerokosc-1,$wysokosc-1,$kolor_linii); // dodanie tytulu $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; // wysrodkowanie w x $tytul_y=($y-$wysokosc_tytulu)/2+$tytul_nad_linia; // wysrodkowanie w y ImageTTFText($ob, $rozmiar_tytulu, 0, $tytul_x, $tytul_y, $kolor_tekstu, $czcionka, $tytul); // narysowanie bazy od nieco ponad pozycja pierwszego slupka do nieco // ponizej pozycji ostatniego ImageLine($ob, $x, $y-5, $x, $wysokosc-15, $kolor_linii); /********************************************* Umieszczenie danych na wykresie *********************************************/ // Pobranie kazdej linii bazy danych i narysowanie odpowiadajacych slupków while ($rzad=$wynik->fetch_object()) { if($ilosc_glosow>0) else $procent=0; // wyswietlenie procentów dla tej wartosci $wymiary_procentow=ImageTTFBbox($rozmiar_podstawowy, 0, $czcionka, $procent.'%'); $dlugosc_procentow=$wymiary_procentow[2]-$wymiary_procentow[0]; ImageTTFText($ob,$rozmiar_podstawowy, 0, $szerokosc-$dlugosc_procentow-$wciecie_tekstu, $y+($wysokosc_slupka/2), $kolor_procentow, $czcionka, $procent.'%'); // dlugosc slupka dla tej wartosci $dlugosc_slupka=$x+($procent*$jednostka_slupka); // narysowanie slupka dla tej wartosci ImageFilledRectangle($ob, $x, $y-2, $dlugosc_slupka, $y+$wysokosc_slupka, $kolor_slupka); // narysowanie tytulu dla tej wartosci ImageTTFText($ob, $rozmiar_podstawowy, 0, $wciecie_tekstu, $y+($wysokosc_slupka/2), $kolor_tekstu, $czcionka, "$rzad->kandydat"); // narysowanie konturu pokazujacego 100% ImageRectangle($ob, $dlugosc_slupka+1, $y-2, ($x+(100*$jednostka_slupka)), $y+$wysokosc_slupka, $kolor_linii); // wyswietlenie liczb ImageTTFText($ob, $rozmiar_maly, 0, $x+(100*$jednostka_slupka)-50, $y+($wysokosc_slupka/2), $kolor_liczb, $czcionka, $rzad->ilosc_glosow.'/'.$ilosc_glosow); // przesuniecie do nastepnego slupka $y=$y+($wysokosc_slupka+$odleglosc_slupkow); } /********************************************* Wyswietlenie obrazka *********************************************/ ImagePNG($ob); /********************************************* Zwalnianie zasobów *********************************************/ ImageDestroy($ob); ?>
Dostaje komunikat : Nie rozumiem dlaczego skrypt nie moze znalesc czcionki probowalem sciezke na wszystkie sposoby i dalej to samo
Warning: imagettfbbox() [function.imagettfbbox]: Invalid font filename in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\php\pokaz_wyniki.php on line 103 + linie w ktorych odnosze sie do zmiennej $czcionka