![]() |
![]() ![]() |
![]() |
-Syriusz- |
![]() ![]()
Post
#1
|
Goście ![]() |
Kod [/code]Witam, swoja przygodę rozpocząłem z php około tygodnia temu, jednak chyba nieźle mi idzie, jednak napotkałem opór od strony kodu. Chciałem zrobić rozbudowany generator grafiki. i mam 2 pliki: index.php: [code] <head> <script type="text/javascript"> window.onload = Laduj; var active_id = ""; function Laduj() { document.forms['generator'].tlo.onchange = Zmien; } function Zmien() { if (active_id != "") { var blok2 = document.getElementById(active_id); blok2.style.display = "none"; } var blok = document.getElementById(this.value); blok.style.display = "block"; active_id = this.value; } </script> </head> <body> <center> <table name="kreator" width="500" height="400" border="0"> <form name="generator" action="read.php" method="post"> <tr> <td> Nick:<input type="text" name="nick" size="10" value="nick" /> <br> Rozmiar czcionki: <select name="rozmiar"> <option>8</option> <option>10</option> <option>12</option> <option>14</option> <option>16</option> <option>18</option> <option>20</option> <option>22</option> <option>24</option> <option>26</option> <option>28</option> <option>30</option> <option>32</option> <option>36</option> <option>40</option> <option>44</option> <option>48</option> <option>56</option> <option>62</option> <option>68</option> <option>74</option> </select><br> Obróć tekst o: <select name="kat"> <option>0</option> <option>5</option> <option>10</option> <option>15</option> <option>20</option> <option>25</option> <option>30</option> <option>35</option> <option>40</option> <option>45</option> <option>50</option> <option>55</option> <option>60</option> <option>65</option> <option>70</option> <option>75</option> <option>80</option> <option>85</option> <option>90</option> <option>-5</option> <option>-10</option> <option>-15</option> <option>-20</option> <option>-25</option> <option>-30</option> <option>-35</option> <option>-40</option> <option>-45</option> <option>-50</option> <option>-55</option> <option>-60</option> <option>-65</option> <option>-70</option> <option>-75</option> <option>-80</option> <option>-85</option> <option>-90</option> </select>stopni<br> Położenie nicku:<br>odstęp od góry w pikselach: <input type="text" name="odstep2" size="5" maxlength="3" value="000" /><br> odstęp od lewej w pikselach: <input type="text" name="odstep1" size="5" maxlength="3" value="000" /> <br> Wybierz czcionkę: <select name="czcionka"> <option>arial.ttf</option> <option>tahoma.ttf</option> <option>verdena.ttf</option> <option>base_02.ttf</option> </select> </td></tr> <tr><td> Kolor czcionki: <select name="kolor"> <option value="1" style="background: #FFFFFF; margin: 2px; color: #FFFFFF;" >bialy</option> <option value="13" style="background: #C0C0C0; margin: 2px; color: #C0C0C0;" >srebrny</option> <option value="6" style="background: #808080; margin: 2px; color: #808080;" >szary</option> <option value="12" style="background: #000000; margin: 2px; color: #000000;" >czarny</option> <option value="15" style="background: #000080; margin: 2px; color: #000080;" >granatowy</option> <option value="niebieski" style="background: #0000FF; margin: 2px; color: #0000FF;" >niebieski</option> <option value="17" style="background: #00FFFF; margin: 2px; color: #00FFFF;" >jasnoniebieski</option> <option value="7" style="background: #FF00FF; margin: 2px; color: #FF00FF;" >różowy</option> <option value="4" style="background: #800080; margin: 2px; color: #800080;" >fioletowy</option> <option value="bordowy" style="background: #800000; margin: 2px; color: #800000;" >bordowy</option> <option value="czerwony" style="background: #FF0000; margin: 2px; color: #FF0000;" >czerwony</option> <option value="pomarańczowy" style="background: #FFA500; margin: 2px; color: #FFA500;" >pomarańczowy</option> <option value="żółty" style="background: #FFFF00; margin: 2px; color: #FFFF00;" >żółty</option> <option value="limonka" style="background: #00FF00; margin: 2px; color: #00FF00;" >limonka</option> <option value="zielony" style="background: #008000; margin: 2px; color: #008000;" >zielony</option> <option value="14" style="background: #808000; margin: 2px; color: #808000;" >oliwkowy</option> <option value="16" style="background: url:bg1.png; margin: 2px; color: #008080;" >turkusowy</option> </select> </td> </tr> <tr width="400"> <td> Wybierz tło: <select name="tlo"> <option value="bg1.png">bg1.png</option> <option value="bg2.png">bg2.png</option> <option value="bg3.png">bg3.png</option> </select> </td> <td width="200" height="100"> <div id="bg1.png" style="display: none;"><img src="bg1.png" height="75" width="150"></div> <div id="bg2.png" style="display: none;"><img src="bg2.png" height="75" width="150"></div> <div id="bg3.png" style="display: none;"><img src="bg3.png" height="75" width="150"></div> </td> </tr> <tr colspan="2"><td> <INPUT TYPE="submit" VALUE="GENERUJ"> </FORM></td></tr></table> </center> </body> oraz plik read.php: Kod <?php $nick = ($_POST['nick']); $czcionka = ($_POST['czcionka']); $tlo = ($_POST['tlo']); $size = ($_POST['rozmiar']); $kat = ($_POST['kat']); $x = ($_POST['odstep1']); $z = ($_POST['odstep2']); $kolor = ($_POST['kolor']); if ($kolor == "niebieski") { $a = "0"; $b = "0"; $c = "255"; } if ($kolor == "czerwony") { $a = "255"; $b = "0"; $c = "0"; } $rysunek = ImageCreateFromPng($tlo); $color = ImageColorAllocate($image, $a, $b, $c); ImageTTFText($rysunek, $size, $kat, $x, $z, $color, $czcionka, $nick); header("Content-type: image/jpeg"); ImageJpeg($rysunek); Opis problemu: Co bym nie robił zawsze tekst jest czarny, $a, $b, $c nie przyjmuje odpowiednich wartości próbowałem na różne sposoby, nawet klient sam wprowadzał w formularzu wartość red, green i blue w polach <input type="text"... i nic to nie dawało... Prosze o pomoc to bardzo pilne! |
|
|
![]()
Post
#2
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Skoro <option value="1" to dlaczego if ($kolor == "niebieski") { ? Trzymaj się jakiegoś zapisu...
Skoro $rysunek = ImageCreateFromPng($tlo); to dlaczego header("Content-type: image/jpeg"); ImageJpeg($rysunek); ? Skoro $rysunek = ImageCreateFromPng($tlo); to dlaczego $color = ImageColorAllocate($image, $a, $b, $c); header("Content-type: image/png"); lepiej daj na początku, bo bedziesz miał problemy z wysyłaniem nagłówka. Jak zakomentujesz header("Content-type: image/png");, to zobaczysz błędy... Po imagepng($rysunek); daj imagedestroy($rysunek); żeby zwolnić pamięć. Po za tym, wszystko inne działa. Co do kolorów, to proponuję takie rozwiązanie (czytelniejsze):
Do czcionki musi być podana ścieżka albo fonty w katalogu ze skryptem. Popraw BBcode Ten post edytował Kshyhoo 16.05.2012, 19:56:58 -------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
-Syriusz- |
![]() ![]()
Post
#3
|
Goście ![]() |
![]() ![]() podczas pisania tego korzystałem z manuala do php i pewnie nawet nie zważyłem kiedy popełniłem te błędy... Super z tym switch zaproponowałeś faktycznie if nie ma tutaj racji bytu jak mam pięknie id popisane. Czy mógłbym prosić o usunięcie tego wątku? chodzi o to, że to praca kontrolna i nie chciałbym aby mój nauczyciel wylukał to w necie i potem mi zarzucił, że sam tego nie napisałem, tylko skopiowałem :/ a kosa z niego nieziemska. Jeszcze raz bardzo dziękuję za pomoc i pewnie jeszcze tu wrócę w przyszłości z innymi problemami, mam nadzieję, że nie z takimi błahymi, tylko zadam Wam coś nad czym tez troche przysiądziecie ![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Chcesz wracać, to się zarejestruj. To nic nie kosztuje.
Co do usuwania wątków, nie robimy tego, bo się przyda to na przyszłość dla innych. Twój nauczyciel nie powinien się czepiać, bo właśnie umiejętność wyszukiwania rozwiązań i poszukiwania pomocy jest normalnym procesem w czasie nauki - tym bardziej, że dysponowałeś własnym kodem. Dla łatwiejszego zrozumienia problemów, korzystaj z wyświetlania danych przechodzących przez tablice globalne, takich jak: var_dump() var_export() print_r() Szczególnie takie cudo może być pomocne (dotyczy wszystkich danych): A jak czegoś nie umiesz znaleźć, bo twierdzisz, że go nie ma ("nie przechodzi" - jak pisałeś), wyświetlaj zmienne: Dotyczy to również zapytań... -------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.07.2025 - 01:39 |