Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]GD2
Forum PHP.pl > Forum > Przedszkole
sq6aah
Witam,
Przy wykonywaniu skryptu:
  1. <?php
  2. /*********************************************
  3.   Zapytanie bazy danych odczytujšce wynik ankiety
  4. *********************************************/
  5.  
  6. // pobranie głosu z formy
  7. $glos=$_REQUEST['glos'];
  8.  
  9. // zalogowanie w bazie danych
  10. if(!$bd_polacz=new mysqli('localhost', 'marcin', 'marcin', 'ankieta'))
  11. {
  12. echo 'Połšczenie z bazš danych nieudane<br />';
  13. };
  14.  
  15. if(!empty($glos)) // jeżeli formularz został wypełniony, dodanie głosu
  16. {
  17. $glos=addslashes($glos);
  18. $zapytanie="update wyniki_ankiety
  19. set ilosc_glosow = ilosc_glosow + 1
  20. where kandydat = '$glos'";
  21. if(!($wynik=@$bd_polacz->query($zapytanie)))
  22. {
  23. echo 'Połšczenie z bazš danych nieudane<br />';
  24. }
  25. };
  26.  
  27. // pobranie aktualnych wyników ankiety, niezależnie od faktu głosowania
  28. $zapytanie='select * from wyniki_ankiety';
  29. if(!($wynik=@$bd_polacz->query($zapytanie)))
  30. {
  31. echo 'Połšczenie z bazš danych nieudane<br />';
  32. };
  33. $ilosc_kandydatow=$wynik->num_rows;
  34.  
  35. // obliczenie całkowitej liczby głosów
  36. $ilosc_glosow=0;
  37. while ($rzad=$wynik->fetch_object())
  38. {
  39. $ilosc_glosow+=$rzad->ilosc_glosow;
  40. }
  41. $wynik->data_seek(0); // wyzerowanie wska_nika wyniku
  42.  
  43. /*********************************************
  44.   Poczštkowe obliczenia wykresu
  45. *********************************************/
  46. // ustawienie stałych
  47. putenv('GDFONTPATH=C:\WINDOWS\Fonts');
  48. $szerokosc=500; //szerokosc obrazka w pikselach - ta zmie_ci się w rozdzielczo_ci 640x480
  49. $lewy_margines=50; // miejsce pozostawiane po lewej stronie obrazka
  50. $prawy_margines=50; // to samo dla strony prawej
  51. $wysokosc_slupka=40;
  52. $odleglosc_slupkow=$wysokosc_slupka/2;
  53. $czcionka='ARIAL.TTF';
  54. $rozmiar_tytulu=16; // w stopniach
  55. $rozmiar_podstawowy=12; // w stopniach
  56. $rozmiar_maly=12; // w stopniach
  57. $wciecie_tekstu=10; //odległo_ć lewych etykiet tekstowych od lewej krawędzi obrazka
  58.  
  59. // ustawienie poczštkowego punktu rysowania
  60. $x=$lewy_margines+70; //miejsce narysowania bazy wykresu
  61. $y=50; //to samo
  62. $jednostka_slupka=($szerokosc-($x+$prawy_margines))/100; //jeden "stopień" wykresu
  63.  
  64. // obliczenie wysoko_ci wykresu - słupki plus przerwy plus pewien margines
  65. $wysokosc=$ilosc_kandydatow*($wysokosc_slupka+$odleglosc_slupkow)+50;
  66.  
  67. /*********************************************
  68.   Konfiguracja podstawowego obrazka
  69. *********************************************/
  70. // stworzenie pustego kadru
  71. $ob=imagecreateTrueColor($szerokosc, $wysokosc);
  72.  
  73. // Przydzielenie kolorów
  74. $bialy=ImageColorAllocate($ob,255,255,255);
  75. $niebieski=ImageColorAllocate($ob,0,64,128);
  76. $czarny=ImageColorAllocate($ob,0,0,0);
  77. $rozowy=ImageColorAllocate($ob,255,78,243);
  78.  
  79. $kolor_tekstu=$czarny;
  80. $kolor_procentow=$czarny;
  81. $kolor_tla=$bialy;
  82. $kolor_linii=$czarny;
  83. $kolor_slupka=$niebieski;
  84. $kolor_liczb=$rozowy;
  85.  
  86. // stworzenie "kadru" do rysowania
  87. ImageFilledRectangle($ob,0,0,$szerokosc-1,$wysokosc-1,$kolor_tla);
  88.  
  89. // narysowanie konturów wokół kadru
  90. ImageRectangle($ob,0,0,$szerokosc-1,$wysokosc-1,$kolor_linii);
  91.  
  92. // dodanie tytułu
  93. $tytul='Wyniki ankiety';
  94. $wymiary_tytulu=ImageTTFBBox($rozmiar_tytulu, 0, $czcionka, $tytul);
  95. $dlugosc_tytulu=$wymiary_tytulu[2]-$wymiary_tytulu[0];
  96. $wysokosc_tytulu=abs($wymiary_tytulu[7]-$wymiary_tytulu[1]);
  97. $tytul_nad_linia=abs($wymiary_tytulu[7]);
  98. $tytul_x=($szerokosc-$dlugosc_tytulu)/2; // wy_rodkowanie w x
  99. $tytul_y=($y-$wysokosc_tytulu)/2+$tytul_nad_linia; // wy_rodkowanie w y
  100. ImageTTFText($ob, $rozmiar_tytulu, 0, $tytul_x, $tytul_y,
  101. $kolor_tekstu, $czcionka, $tytul);
  102.  
  103. // narysowanie bazy od nieco ponad pozycjš pierwszego słupka do nieco
  104. // poniżej pozycji ostatniego
  105. ImageLine($ob, $x, $y-5, $x, $wysokosc-15, $kolor_linii);
  106.  
  107. /*********************************************
  108.   Umieszczenie danych na wykresie
  109. *********************************************/
  110. // Pobranie każdej linii bazy danych i narysowanie odpowiadajšcych słupków
  111. while ($rzad=$wynik->fetch_object())
  112. {
  113. if($ilosc_glosow>0)
  114. $procent=intval(round(($rzad->ilosc_glosow/$ilosc_glosow)*100));
  115. else
  116. $procent=0;
  117.  
  118. // wy_wietlenie procentów dla tej warto_ci
  119. $wymiary_procentow=ImageTTFBbox($rozmiar_podstawowy, 0, $czcionka, $procent.'%');
  120. $dlugosc_procentow=$wymiary_procentow[2]-$wymiaryprocentow[0];
  121. ImageTTFText($ob,$rozmiar_podstawowy, 0, $szerokosc-$dlugosc_procentow-$wciecie_tekstu,
  122. $y+($wysokosc_slupka/2), $kolor_procentow, $czcionka, $procent.'%');
  123.  
  124. // długo_ć słupka dla tej warto_ci
  125. $dlugosc_slupka=$x+($procent*$jednostka_slupka);
  126.  
  127. // narysowanie słupka dla tej warto_ci
  128. ImageFilledRectangle($ob, $x, $y-2, $dlugosc_slupka, $y+$wysokosc_slupka,
  129. $kolor_slupka);
  130.  
  131. // narysowanie tytułu dla tej warto_ci
  132. ImageTTFText($ob, $rozmiar_podstawowy, 0, $wciecie_tekstu,
  133. $y+($wysokosc_slupka/2), $kolor_tekstu, $czcionka,
  134. "$rzad->kandydat");
  135.  
  136. // narysowanie konturu pokazujšcego 100%
  137. ImageRectangle($ob, $dlugosc_slupka+1, $y-2, ($x+(100*$jednostka_slupka)),
  138. $y+$wysokosc_slupka, $kolor_linii);
  139.  
  140. // wy_wietlenie liczb
  141. ImageTTFText($ob, $rozmiar_maly, 0, $x+(100*$jednostka_slupka)-50,
  142. $y+($wysokosc_slupka/2), $kolor_liczb, $czcionka,
  143. $rzad->ilosc_glosow.'/'.$ilosc_glosow);
  144.  
  145. // przesunięcie do następnego słupka
  146. $y=$y+($wysokosc_slupka+$odleglosc_slupkow);
  147. }
  148.  
  149. /*********************************************
  150.   Wy_wietlenie obrazka
  151. *********************************************/
  152. Header('Content=type: image/png');
  153. ImagePNG($ob);
  154.  
  155. /*********************************************
  156.   Zwalnianie zasobów
  157. *********************************************/
  158. ImageDestroy($ob);
  159. ?>
  160.  
  161.  


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ę.
maly_swd
header("Content-Type: image/png");
sq6aah
Dzięki smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.