Artykuł pochodzi z czasopisma PHP Solutions. Do ściągnięcia bezpłatnie ze strony:
|
|
- Marek Pawlak
- 6 lat temu
- Przeglądów:
Transkrypt
1 Artykuł pochodzi z czasopisma PHP Solutions. Do ściągnięcia bezpłatnie ze strony: Bezpłatne kopiowanie i rozpowszechanie artykułu dozwolone pod warunkiem zachowania jego obecnej formy i treści.
2 Wojciech Jukowski Powstrzymywanie automatów obrazki z napisami Wymuszenie, by użytkownik przeczytał i wpisał w pole formularza napis znajdujący się na rysunku to nie tylko sposób by zdenerwować odwiedzającego stronę. To także jedna ze skuteczniejszych metod zabezpieczania witryn przed atakami automatów, mającymi na celu np. zdobycie dostępu do serwera. Rozwiązanie tego typu stosowane jest m.in. Przez portal Yahoo! podczas tworzenia konta użytkownika. W artykule przedstawię budowę mechanizmu do generowania tokenów, zaproponuję też kilka ulepszeń uniemożliwiających automatom czytanie napisów z rysunków. Do generowania grafiki wykorzystam popularną, dostępną bezpłatnie, bibliotekę GD. Biblioteka GD zależnie od wersji wspiera tworzenie grafiki w formacie JPEG, PNG, WBMP oraz XPM. Starsze wersje (do 1.6) umożliwiały również tworzenie obrazków GIF. W związku z potrzebą posiadania licencji na algorytm kompresji użyty w plikach GIF, wsparcie dla formatu GIF zostało w bibliotece zastąpione wsparciem dla formatu PNG. Jest jednak możliwe uzyskanie zgody na legalne wykorzystywanie formatu GIF wraz ze starszymi bibliotekami GD. Nie jest to jednak łatwe i możliwe, że będzie sporo kosztowało. Po szczegóły na temat uzyskania dostępu do opatentowanego algorytmu odsyłam na stronę: http: // unisys/lzw. W artykule opisywać będę tworzenie obrazków typu PNG. To najbardziej wszechstronny format. Dobrze wspiera dużą ilość kolorów, pozwala na przeźroczystość oraz jest obsługiwany przez większość przeglądarek. Zestawienie wszystkich wspieranych typów wraz z krótkim opisem zawiera Ramka 2. Aby sprawdzić, czy mam zainstalowaną bibliotekę GD tworzę skrypt z wywołaniem funkcji phpinfo(). Pośród długiej listy, jaką daje wynik, znajduję informacje o bibliotece GD. Oznacza to, że biblioteka jest ładowana do PHP. Ramka może wyglądać, jak ta na Rysunku 4. Krok 1. Wybieramy rozmiar obrazka 1 PHP Solutions 1/2003
3 Rysunek 1. Tak przebiega rozwój naszego tokena Instalacja biblioteki Pracując w dowolnym systemie z rodziny Windows otwieram plik php.ini. Znajduję linijkę: extension=php _ gd.dll i odkomentowuję ją, to znaczy usuwam średnik z początku linii. Nowsze wersje PHP mogą zawierać wsparcie dla biblioteki GD w wersji 2 wówczas dyrektywa extension będzie wskazywała na plik php_gd2.dll. PHP będzie szukało pliku biblioteki w katalogu extension _ dir, sprawdzam więc, na jaki katalog w php.ini wskazuje ta zmienna i w razie potrzeby poprawiam wpis. Jeśli w katalogu extensions/ lub innym, na który wskazuje extension _ dir, nie ma odpowiedniego pliku.dll należy pobrać pełną wersje pakietu ze strony downloads.php. Rysunek 2. Informacja o bibliotece GD Krok 2. Wypełniamy tło PHP Solutions 1/
4 Listing 1. Tworzenie obrazka z napisem <?php?> //tworzę obrazek o określonych //wymiarach $grafix = ImageCreate(25 100); //tworzę dwa kolory zielony //i niebieski (tło) $bgcolor = ImageColorAllocateS ($grafix, 255, 0); //kolor tekstu $txtcolor = ImageColorAllocateS ($grafix, 255); //maluję tło na zielono ImageFill($grafix, $bgcolor); //umieszczam niebieski napis //"Alice in Wonderland" //rozmiaru 3 ImageString($grafix, 6, 15, 15, "Alice in Wonderland", $txtcolor); //wysyłam odpowiedni nagłówek, //a następnie obrazek do //przeglądarki header("content-type: image/png"); ImagePNG($grafix); //sprzątam po sobie ImageDestroy($grafix); Rysunek 3. Schemat działania Projekty W systemie Linux konieczne jest wkompilowanie biblioteki GD do systemu (może się to sprowadzić wyłącznie do dodania odpowiedniego pakietu). (Informacje o instalacji rozszerzenia zawiera Ramka 3). Po dodaniu biblioteki należy pamiętać o modyfikacji pliku konfiguracyjnego PHP (domyślna lokalizacja to /etc/php.ini). Tak jak w przypadku Windows należy odkomentować odpowiednią dyrektywę extension oraz sprawdzić wskazanie dla extension _ dir. Zamiast płótna i pędzla skrypt Jeśli biblioteka GD jest zainstalowana i działa prawidłowo powinno udać się stworzyć obrazek. W tym celu piszę prosty skrypt mający wygenerować Krok 3. Dodajemy napis Zestawienie formatów graficznych dostępnych w bibliotece GD GIF (Graphics Interchange Format) jest to formuła zapisu plików graficznych stworzona przez firmę CompuServ w roku Do ich tworzenia wykorzystywany jest algorytm kompresji (LZW) stworzony i opatentowany przez firmę Unisys. Jako iż Unisys czerpie korzyści ze swego patentu, używanie zapisu GIF wymaga posiadania licencji. W sierpniu 2004 roku, patent przestanie obowiązywać na całym świecie. Jak podają autorzy biblioteki GD powróci wówczas usunięty format. GIF pozwala tworzyć obrazki z zadeklarowanym kolorem przeźroczystym. Obsługuje do 256 kolorów. Dzięki małym rozmiarom oraz możliwości tworzenia animacji szybko zyskał ogromną popularność w Internecie. JPEG/ JPG (Joint Photographic Experts Group) kolejny niezwykle popularny w internecie format. Pozwala na 24 bitowy zapis koloru (ponad 16 milionów kolorów). Znakomity do fotografii czy tonalnych przejść barw. Przy małych obrazkach, kompresja może czynić obrazek miejscami rozmazany lub nieczytelny. PNG (Portable Network Graphics) następca formatu GIF. Oferuje lepsze wsparcie dla kolorów i doskonalszą kompresję. Pozwala na zmianę natężenia światła i ma wsparcie dla przeźroczystości. WBMP format stworzony na potrzeby protokołu WAP. To bitmapa o tylko dwóch kolorach (czarnym i białym). Obrazki WBMP prócz telefonów komórkowych poprawnie interpretuje ten format tylko jedna przeglądarka Opera. XMP wymaga systemu X-Window. Więcej informacji o bibliotece i jej możliwościach można znaleźć na stronie PHP Solutions 1/2003
5 Powstrzymywanie automatów Listing 2. Przesłanie nagłówka do przeglądarki header ( "Expires: Mon, 22 Sep :00:00 GMT"); header ( "Last-Modified: ". gmdate("d, d M Y H:i:s"). " GMT"); header ( "Cache-Control: no-store, no-cache, must-revalidate"); header ( "Cache-Control: post-check= pre-check=0", false); header ("Pragma: no-cache"); obiekt typu PNG, szeroki na 250 i wysoki na 100 pikseli (Listing 1). Krótko o kodzie z Listingu 1. Skrypt zaczynam funkcją ImageCreate tworzącą obrazek. Za pomocą funkcji ImageColorAllocate definiuję odcienie, których zamierzam użyć przy kolorowaniu obrazka. Nasycenie barw czerwonej, zielonej i niebieskiej, (czyli RGB) podaje w kolejnych parametrach. W następnej linii wywołuję ImageFill by pokolorować tło (całe więc parametry mają wielkość obrazka, czyli 250 i 100 pikseli. Następnie umieszczam tekst Alice in Wonderland, przekazując ImageString zmienne dotyczące napisu. ImageString przyjmuje kolejno wartości: obrazek, rozmiar wyświetlanego tekstu (6 odległość od lewego brzegu (15) i odległość od górnej krawędzi (15 napis, jaki ma się pojawić oraz kolor tekstu. Ostatnie linie to wysłanie odpowiedniego nagłówka Listing 3. Losowanie słowa if(phpversion()< 4.2){ mt_srand(time()*123456); $words = "Alice", "cat", "rabbit", "Queen"); $randwordno = mt_rand( sizeof($words)-1); ImageString( $grafix, 6, 15, 15, $words[$randwordno], $txtcolor); do przeglądarki, wyświetlenie grafiki i usunięcie obrazka z pamięci. Może się okazać, że nasza wersja biblioteki nie wspiera PNG (za to radzi sobie z plikami JPEG bądź GIF) wówczas wszystkie wywołania ImagePNG w listingach należy zastąpić odpowiednio ImageJpeg lub ImageGif. Niektóre przeglądarki buforują otrzymane dane, szczególnie gdy jest to grafika. Aby przeglądarka za każdym razem pobierała tworzoną grafikę, należy dopisać na początku skryptu nagłówki wymuszające każdorazowe pobieranie wygenerowanej zawartości (Listing 2). Przesyłamy obraz Jestem w stanie wygenerować obrazek, czyli biblioteka GD działa poprawnie. Określiłem, jakie nagłówki należy przesłać do przeglądarki by nie buforowała danych. Mogę zająć się stworzeniem formula- Listing 4. Formularz <?php session_name("imagesess"); session_start(); //sprawdzanie formularza $show = "form"; if(isset($_post["guessedword"])) { if($_post["guessedword"] == $_SESSION["choosenWord"]){ $show = "OK"; else{ $show = "error"; if($show == "form" $show == "error"){ if($show == "error"){ echo "Nie odgadłeś słowa. Spróbuj ponownie";?> <form method="post" action="<?=$_servers ["PHP_SELF"]?>"> <img src= "grafixtoken.php?imagesess= <?=session_id()?>"> <input type="text" name="guessedword"> <input type="submit" value="sprawdź mnie"> </form>?> <? else{ echo "Gratulacje poprawnego odczytania słowa!"; Rysunek 4. Generowany automatycznie obrazek (token) na stronie Yahoo Krok 4. Różne napisy PHP Solutions 1/
6 Projekty Listing 5. Losowanie kolorów dla tła i napisu $settings= "bgcolor" => 255, 0 "txtcolor"=> 255, 0) "bgcolor" => 255, 0 "txtcolor"=> 255) "bgcolor" => 255 "txtcolor"=> 255, 0) ) ); $randsettingsno = mt_rand( sizeof($settings)-1); //kolor tła $bgcolorrgb = $settings[ $randsettingsno ]["bgcolor"]; $bgcolor = ImageColorAllocate( $grafix, $bgcolorrgb[0], $bgcolorrgb[1], $bgcolorrgb[2]); //kolor tekstu $txtcolorrgb = $settings[ $randsettingsno ]["txtcolor"]; $txtcolor = ImageColorAllocate( $grafix, $txtcolorrgb[0], $txtcolorrgb[1], $txtcolorrgb[2]); Listing 6. Losowa zmiana parametrów obrazka $settings= "bgcolor" => mt_rand(3180 mt_rand(30) "txtcolor"=> mt_rand(15255 mt_rand(30)) "bgcolor" => 255, mt_rand( "txtcolor"=> mt_rand(30 mt_rand(10255)) "bgcolor" => mt_rand(3180 mt_rand(30) "txtcolor"=> mt_rand(10230 mt_rand(15255)) ) ); rza. Zawierał on będzie obrazek z treścią, którą odczyta użytkownik. Całość podzieliłem na dwa osobne pliki (skrypty). Pierwszy służy do obsługi generowanej grafiki zawierającej losowy napis, drugi zawiera skrypt wyświetlający formularz oraz sprawdzający, czy wpisane informacje są prawidłowe. Do przekazywania informacji, jakie słowo znajduje się na obrazku, pomiędzy plikami (skryptami) użyję sesji. W pierwszej kolejności opiszę kod generujący obrazek. Aby przekazać wartość korzystając z sesji, trzeba ją wystartować. Na początku skryptu umieszczam session _ name("imagesess"); session _ start();. Nadając nazwę sesji (do tego używam session _ name) mam pewność do jej nazwy i nie muszę pobierać jej później. Modyfikuję skrypt z Listingu 1 dodając pierwsze utrudnienie losowanie słowa z tablicy. Wywołanie funkcji ImageString poprzedzam odpowiednim wpisem (patrz Listing 3). W PHP starszym niż 4.2 należy dodać wywołanie generatora liczb losowych przed pierwszym wywołaniem mt _ rand, nowsze wersje PHP nie wymagają jego inicjowania. Jak wcześniej napisałem, przekazuję przez sesję wylosowane słowo. Dodaję linię: $_SESSION["choosenWord"] = $words[$randwordno]; Wraz z rozbudową programu pojawią się kolejne utrudnienia. Zajmę się teraz częścią drugą, zawierającą formularz (Listing 4). Koniecznie należy pamiętać o wystartowaniu sesji. Najpierw sprawdzam, czy istnieje zmienna guessedword przesłana metodą POST. Prawda (true) oznacza, że wypełniono formularz. Sprawdzam więc, czy wylosowane słowo dokładnie odpowiada przesłanej wartości: $_POST["guessedWord"] == $_SESSION["choosenWord"]. Rezultat przekazuję do zmiennej $show, która ma wartość OK jeśli wszystko się zgadza, albo error, gdy ktoś źle odczytał słowo. Ten etap zatrzymuje wszystkie popularne automaty do pobierania stron takie jak Wget czy Teleport Pro. Skrypt można jeszcze rozwinąć. Dodatkowe zabezpieczenia pozwolą uniknąć prób odczytania napisu z obrazka przez programy wykorzystujące metodę OCR (Optical Character Recognition, czyli Krok 5. Zmieniamy kolor tła Rysunek 5. Strona główna projektu CAPTCHA 5 PHP Solutions 1/2003
7 Powstrzymywanie automatów Listing 7. Opis tapety Listing 8. Tapeta Listing 9. Losowa czcionka $settings= "wallpaper" => "./wallpapers/ wallpaper1.png", "bgcolor" => mt_rand(3180 mt_rand(30) "txtcolor" => mt_rand(15255 mt_rand(30)) "wallpaper" => "./wallpapers/ wallpaper2.png", "bgcolor" => 255, mt_rand( "txtcolor" => mt_rand(30 mt_rand(10255)) "bgcolor" => mt_rand(3180 mt_rand(30) "txtcolor" => mt_rand(10230 mt_rand(15255)) ) ); rozpoznanie pisma przez komputer). Aby wprowadzić je w błąd, stosujemy jak najwięcej nieregularności i drobnych zniekształceń pozwalających jednak odczytać napis przez człowieka. Losowa pozycja napisu, losowy kolor tła Utrudnienia zacznę od nieregularnego umieszczenia napisu na obrazku. Wystarczy, że w wywołaniu funkcji ImageString zmienię stałą odległość od lewego brzegu i od góry na wartość losową. Oto moje zmiany: $randspaceleft = mt_rand(200); $randspaceup ImageString($grafix, 6, = mt_rand(70); if(isset( $settings[ $randsettingsno ] ["wallpaper"])){ //otwieram obrazek typu PNG $grafixbackground $settings[ $randsettingsno ] ["wallpaper"]); //kopiuję całą zawartość //na $grafix ImageCopy($grafix, $grafixbackground, ); else{ ImageFill($grafix, $bgcolor); $randspaceleft, $randspaceup, $words[$randwordno], $txtcolor); Należy zwrócić uwagę, by nie przesadzić z górną wartością zakresu mt _ rand() nie chcemy przecież, żeby słowo wylądowało poza widocznym obszarem. Sprawdzam więc, czy napis mieści się na rysunku, wpisując najdłuższe słowo. Wybieram też, najwyższe wartości dla odległości od lewego i górnego rogu (w moim przypadku odpowiednio 200 i 70). Również wybór tła i kolor napisu pozostawię losowaniu (patrz Listing 5). Wpierw definiuję tablicę $settings, składającą się z kilku tablic. Każda tablica składowa zawiera po dwa klucze: bgcolor oraz txtcolor. Następnie losuję jeden zestaw spośród dostępnych i przypisuję odpowiednie wartości do zmiennych $txtcolorrgb oraz $bgcolor- RGB. W ten sposób obie zmienne przechowują tablicę trzech wartości odpowiadających kolejno barwom Red (czerwony Green (zielony) oraz Blue (niebieski). Aby definicje RGB przełożyć na kolor występujący na obrazku, używam funkcji ImageCollorAllocate, a wynik zapisuję w $bgcolor i $txtcolor. Tych dwóch zmiennych użyję odpowiednio w wywołaniu ImageFill i ImageString. Dodaję kolejne drobne utrudnienie. Zamiast deklarować wartości RGB, odwołuję się do funkcji mt _ rand(). Za jej pomocą losuję wartości liczbowe, według zadanych parametrów. W ten sposób tworzę losowe barwy zarówno dla tła jak i tekstu. Należy jednak uważać, by kolor tła nie był zbyt bliski kolorowi napisu trudno będzie wówczas coś odczytać (patrz Listing 6). if(true == function_exists("imagettftext")) { $fontslist = "./fonts/ariblk.ttf", "./fonts/verdana.ttf", "./fonts/tahoma.ttf"); $randfontno = mt_rand( sizeof( $fontslist)-1); $randfontpath = realpath($fontslist[ $randfontno ]); $randspaceleft = mt_rand(170); $randspaceup = mt_rand(15,75); ImageTtfText( $grafix, 26, $randspaceleft, $randspaceup, $txtcolor, $randfontpath, $words[$randwordno]); else{ $randspaceleft = mt_rand(200); $randspaceup = mt_rand(50); ImageString( $grafix, 6, $randspaceleft, $randspaceup, $words[$randwordno], $txtcolor); Zabezpieczenia losowanie tapety i czcionki Idąc za ciosem, można zamiast koloru tła, użyć tapety tła w postaci obrazka. Dodajmy do niektórych zestawów klucz Krok 6. Dodajemy teksturę, modyfikujemy rodzaj czcionki i pochylenie napisu PHP Solutions 1/
8 Projekty Listing 10. Poszerzenie tablicy $settings o noisecolor oraz definicja koloru $settings= "wallpaper" => "./wallpapers/wallpaper1.png", "bgcolor" => mt_rand(3180 mt_rand(30) "txtcolor" => mt_rand(15255 mt_rand(30) "noisecolor" => 20 mt_rand( mt_rand(10)) "wallpaper" => "./wallpapers/wallpaper2.png", "bgcolor" => 255, mt_rand( "txtcolor" => mt_rand(30 mt_rand(10255) "noisecolor" => 20 mt_rand(30 mt_rand(185, 255)) "bgcolor" => mt_rand(3180 mt_rand(30) "txtcolor" => mt_rand(10230 mt_rand(15255) "noisecolor" => 10 mt_rand(15230 mt_rand(18 200) ) ) ); $randsettingsno = mt_rand( sizeof($settings)-1); //kolor tła $bgcolorrgb = $settings[ $randsettingsno ]["bgcolor"]; $bgcolor = ImageColorAllocate($grafix, $bgcolorrgb[0], $bgcolorrgb[1], $bgcolorrgb[2]); //kolor tekstu $txtcolorrgb = $settings[ $randsettingsno ]["txtcolor"]; $txtcolor = ImageColorAllocate($grafix, $txtcolorrgb[0], $txtcolorrgb[1], $txtcolorrgb[2]); //kolor zanieczyszczeń $noisecolorrgb = $settings[ $randsettingsno ]["noisecolor"]; $noisecolor = ImageColorAllocate($grafix, $noisecolorrgb[0], $noisecolorrgb[1], $noisecolorrgb[2]); wallpaper, wskazujący na ścieżkę do obrazka. Jeśli zostanie on zdefiniowany, zastąpi jednolitą barwę tła. Zmieniam, więc $settings (Listing 7). Musimy również dodać warunek poprzedzający wywołanie ImageFill (Listing 8). Wybór losowej czcionki jest kolejną przeszkodą dla automatów. Ten krok dostępny jest jedynie dla wybranych trzeba bowiem mieć zestaw czcionek (TrueType) oraz bibliotekę GD wspierającą tę opcję. Jeśli w phpinfo( w ramach informacji o bibliotece GD, znajduje się informacja FreeType Support: enabled, można ładować inne czcionki niż standardowe. Mój skrypt będzie działał na różnych serwerach sprawdzam więc, czy istnieje funkcja Krok 7. Dodatkowe litery w tle ImageTtfText. Jeśli funkcja jest dostępna wywołanie function _ exists zwróciło wartość TRUE - mogę korzystać z czcionek TrueType (.ttf). Gdy funkcja nie istnieje, korzystać będę nadal z ImageString. Dodaję od razu losowanie czcionki z listy (Listing 9). Kolejne parametry ImageTtfText oznaczają: grafikę, na której tekst ma się pokazać, rozmiar czcionki w pikselach, kąt nachylenia napisu, odległość podstawy pierwszej litery od lewego rogu, odległość podstawy pierwszej litery od góry, kolor tekstu, pełną ścieżkę do czcionki i, na końcu, sam napis, który ma się pokazać. Muszę od razu poprawić zakresy dla funkcji mt _ rand() losującej odległość od lewego i górnego brzegu obrazka. Kąt pochylenia napisu (czyli 3. parametr) można zastąpić wartością losową np. mt _ rand(-15,15 gdzie liczba oznacza ilość stopni. Do tworzenia grafiki wybrałem 3 czcionki, można jednak bez obaw losować z dużo większej listy. Ważne, by nie podać przez pomyłkę czcionki obrazkowej. Listing 11. Dodatkowe litery w tle grafiki (dla ImageTTFText) //losowe znaki w tle właściwego //napisu ImageTTFText for($i=1; $i<30; $i++){ $randcharspaceleft = mt_rand( 250); $randcharspaceup = mt_rand( 100); $randchar = chr(mt_rand(45, 250)); ImageTtfText( $grafix, 15, mt_rand(360 $randcharspaceleft, $randcharspaceup, $noisecolor, $randfontpath, $randchar); Powstrzymywanie wyrafiniowanych mechanizmów zanieczyszczanie obrazka Zmienianie tła lub czcionki nie gwarantuje, że obrazek nie zostanie odczytany przez sprytne programy wykorzystujące technikę OCR. Aby je zmylić, wynikowy obrazek zanieczyszczam. Najpierw dodaję losowe znaki w podkładzie właściwego napisu. Kolor liter musi być jaśniejszy od właściwego napisu, dlatego dokładam stosowane definicje kolorów do tablicy $settings, a po wylosowaniu zestawu wybieram nowy kolor (Listing 10). Następnie poprzedzam wywołanie funkcji ImageTTFText() Listingiem 11. Chcę by tło zawierało dodatkowe 30 znaków zanieczyszczających. Dla każdej iteracji pętli for() losuję pozycję litery. Symbol nie musi być widoczny w całości, może np. wyjechać poza Listing 12. Dodatkowe litery w tle grafiki (dla ImageString) for($i=1; $i<30; $i++){ $randcharspaceleft = mt_rand( 250); $randcharspaceup = mt_rand( 100); $randchar = chr(mt_rand(45, 250)); ImageString( $grafix, 4, $randcharspaceleft, $randcharspaceup, $randchar, $noisecolor); 7 PHP Solutions 1/2003
9 Powstrzymywanie automatów Listing 13. Przypadkowo rozmieszczam kolorowe kreski for($i=1;$i<50;$i++){ $randpixspaceleft = mt_rand( 250); $randpixspacetop = mt_rand( 100); $style = mt_rand(2); if(0 == $style){ ImageLine( $grafix, $randpixspaceleft, $randpixspacetop, $randpixspaceleft+1 $randpixspacetop+7, $txtcolor); elseif(1 == $style){ ImageLine( $grafix, $randpixspaceleft, $randpixspacetop, $randpixspaceleft-3, $randpixspacetop+7, $noisecolor); else{ ImageLine( $grafix, $randpixspaceleft, $randpixspacetop, $randpixspaceleft+5, $randpixspacetop-5, $bgcolor); obszar obrazka. Podaję więc zakresy równe wymiarom obrazka. Następnie losuję znak w kodzie ASCII pomiędzy 45 a 25 po czym wyświetlam go. Jak napisałem wcześniej, nie chcę, by wylosowane znaki myliły człowieka symbol będzie więc miał mniejszy rozmiar (20). Pozwalam też na sporą dowolność w jego położeniu (kąt pochylenia nawet do 360 stopni). Nie zawsze dostępna jest funkcja ImageTTFText( dodaję więc odpowiednie linie poprzedzając wywołanie funkcji ImageString (Listing 12) W ten sposób dołożę zanieczyszczone litery również wtedy, gdy nie mogę ładować czcionek True Type. Aby ostatecznie zmylić automaty pozwalam sobie na jeszcze jedną sztuczkę: na wynikowym obrazku umieszczę kilkadziesiąt malutkich kresek. Ich nieregularne położenie oraz różne kolory powinny udaremnić pracę programom szukającym liter lub wyrazów na obrazkach. Chcę by linie przykrywały właściwy napis dodaję je dopiero po wywołaniu ImageString lub ImageTTFText (Listing 13). Odrobina historii Problem automatycznego wypełniania formularzy przez automaty nie jest młody. W roku 1997 najpopularniejsza wówczas wyszukiwarka internetowa Altavista potrzebowała sposobu, by powstrzymać automaty przed dopisywaniem do bazy stron WWW. Dodano wówczas zabezpieczenie na etapie procesu rejestracji konta: konieczność odczytania napisu z obrazka. W 2000 roku Yahoo! postanowiło rozwiązać problem dotyczący rejestracji i działań w serwisie dokonywanych przez automaty, które były programami rejestrującymi się pod rzeczywistych użytkowników. Sztuczne twory poruszały się po serwisie, często działając jako nadawcy niechcianej poczty (tj. spamu). By znaleźć rozwiązanie tego problemu zespół z Carnegie Mellon University oraz John Langford z IBM stworzyli CAPTCHA ( completely automated public Turing test to tell computers and humans apart automatyczny test Turinga odróżniający ludzi i komputery). Program miał na celu stworzenie zadania, którego komputery nie będą w stanie rozwiązać bezbłędnie, za to ludzie pokonają z łatwością. Zaproponowano kilka rozwiązań, z których najbardziej godnym zaufania systemem okazał się Gimpy. Mechanizm opiera się na ludzkiej możliwości odczytania nawet bardzo zniekształconego tekstu. Został zaprojektowany przy współpracy z portalem Yahoo! Przykład niewiele zmodyfikowanego pomysłu Gimpy (Ez-Gimpy) pokazuje Rysunek 2. Innymi rozwiązaniami, należącymi do projektu CAPTCHA są: Bongo (użytkownik musi poprawnie przyporządkować elementy do właściwych grup PIX (znalezienie wspólnego określenia dla grupy obrazków Byan (rozpoznanie słów w różnych tonach). Więcej o każdym z systemów można znaleźć na domowej witrynie projektu: Mój obrazek nie jest duży, więc dodam 50 kresek. Dla każdej losuję początek (odległość od lewego i górnego brzegu). Później wybieram styl. Zależnie od wartości linia będzie prawie płaska, lekko lub ostro pochylona. Styl określa również długość oraz kolor linii używam wszystkich trzech zdefiniowanych wcześniej kolorów: $txtcolor, $bgcolor oraz $noise- Color. W ten sposób zniekształcony obrazek powinien stanowić wystarczające zabezpieczenie przed automatami mają- Rysunek 7. Aurox Live PHP cymi na celu uzyskanie dostępu do serwisu internetowego. Podsumowanie Przedstawione w artykule propozycje utrudnienia odczytania napisu z grafiki nie wyczerpują tematu. Można używać trzech słów zamiast jednego czy nakładać je na siebie. Można też odwoływać się do zespołu obrazów zawierających wspólne przesłanie: zamiast umieszczania grafiki odtwarzać dźwięki, tworzyć animacje. Ogranicza nas tylko nasza wyobraźnia. PHP Solutions 1/
7. Dynamiczne generowanie grafiki
7. Dynamiczne generowanie grafiki 7.1. Biblioteka GD Dynamiczne generowanie kodu HTML to podstawowe zastosowanie języka PHP. Często jednak to nie wystarczy i mieszanka: dynamiczny HTML plus statyczna grafika,
Bardziej szczegółowoGrafika PHP dla początkujących
Instrukcja numer 02 Grafika PHP dla początkujących Zaawansowane techniki tworzenie stron WWW Dynamiczne tworzenie obrazków w PHP zadanie_01.php to jest dynamicznie stworzony obrazek
Bardziej szczegółowoAplikacje WWW - laboratorium
Aplikacje WWW - laboratorium PHP. Celem ćwiczenia jest przygotowanie prostej aplikacji internetowej wykorzystującej technologię PHP. Aplikacja pokazuje takie aspekty, obsługa formularzy oraz zmiennych
Bardziej szczegółowoI. Informacje ogólne. Jednym z takich systemów jest Mambo.
MAMBO (CMS) I. Informacje ogólne CMS, Content Management System ("system zarządzania treścią") jest to jedna lub zestaw aplikacji internetowych pozwalających na łatwe utworzenie oraz późniejszą aktualizację
Bardziej szczegółowoKurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/
Paweł Rajba pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Spis treści Obsługa obrazków w PHP Wprowadzenie Tworzenie i niszczenie obrazka Kolory Funkcje od obsługi obrazków - 1 - Wprowadzenie Przygotowanie
Bardziej szczegółowoCzęść II Wyświetlanie obrazów
Tło fragmentu ABA-X Display jest wyposażony w mechanizm automatycznego tworzenia tła fragmentu. Najprościej można to wykonać za pomocą skryptu tlo.sh: Składnia: tlo.sh numer oznacza numer
Bardziej szczegółowo8. Dynamiczne generowanie grafiki, cz. 2
8. Dynamiczne generowanie grafiki, cz. 2 8.1. Generowanie tekstu Chociaż tekst można umieścić na grafice korzystając z HTML (używając grafiki jako tła obiektu), często wygodniej jest umieścić tekst bezpośrednio
Bardziej szczegółowoĆwiczenie: JavaScript Cookies (3x45 minut)
Ćwiczenie: JavaScript Cookies (3x45 minut) Cookies niewielkie porcje danych tekstowych, które mogą być przesyłane między serwerem a przeglądarką. Przeglądarka przechowuje te dane przez określony czas.
Bardziej szczegółowoPodstawy technologii WWW
Podstawy technologii WWW Ćwiczenie 14 AJAX, czyli jak odświeżyć bez odświeżania, część trzecia Na dzisiejszych zajęciach będziemy kontynuować realizację serwisu do wymiany wiadomości z wykorzystaniem technologii
Bardziej szczegółowoPodstawy technologii WWW
Podstawy technologii WWW Ćwiczenie 8 PHP, czyli poczatki nowej, dynamicznej znajomosci Na dzisiejszych zajęciach rozpoczniemy programowanie po stronie serwera w języku PHP. Po otrzymaniu żądania serwer
Bardziej szczegółowoGeneratory pomocy multimedialnych
Generatory pomocy multimedialnych Storna 1 Instalacja generatorów oraz praca z generatorem puzzli, memory oraz grupowania.* *Projekt jest całkowicie finansowany z programu Kapitał Ludzki, III Wysoka jakoś
Bardziej szczegółowoMateriały dla studentów pierwszego semestru studiów podyplomowych Grafika komputerowa i techniki multimedialne rok akademicki 2011/2012 semestr zimowy
Materiały dla studentów pierwszego semestru studiów podyplomowych Grafika komputerowa i techniki multimedialne rok akademicki 2011/2012 semestr zimowy Temat: Przekształcanie fotografii cyfrowej w grafikę
Bardziej szczegółowoCała prawda o plikach grafiki rastrowej
~ 1 ~ Cała prawda o plikach grafiki rastrowej Grafika rastrowa to rodzaj grafiki zapisywanej na dysku w postaci bitmapy, czyli zbioru pikseli. W edytorach grafiki rastrowej możliwa jest edycja na poziomie
Bardziej szczegółowoFORMATY PLIKÓW GRAFICZNYCH
FORMATY PLIKÓW GRAFICZNYCH Różnice między nimi. Ich wady i zalety. Marta Łukasik Plan prezentacji Formaty plików graficznych Grafika wektorowa Grafika rastrowa GIF PNG JPG SAV FORMATY PLIKÓW GRAFICZNYCH
Bardziej szczegółowoKonfiguracja szablonu i wystawienie pierwszej aukcji allegro
Konfiguracja szablonu i wystawienie pierwszej aukcji allegro Metod na wystawienie aukcji na allegro jest co najmniej 2. W pierwszej przechodzimy do zakładki MOJA SPRZEDAŻ, w USTAWIENIACH SPRZEDAŻY odnajdujemy
Bardziej szczegółowoKontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do
Sesje i ciasteczka Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do śledzenia użytkownika podczas jednej sesji
Bardziej szczegółowoWskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.
Część XXII C++ w Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Ćwiczenie 1 1. Utwórz nowy projekt w Dev C++ i zapisz go na
Bardziej szczegółowoFormaty obrazów rastrowych biblioteki PBM
Formaty obrazów rastrowych biblioteki PBM Reprezentacja obrazu Obrazy pobierane z kamery, bądź dowolnego innego źródła, mogą być składowane na pliku dyskowym w jednym z wielu istniejących formatów zapisu
Bardziej szczegółowoTworzenie infografik za pomocą narzędzia Canva
Tworzenie infografik za pomocą narzędzia Canva Spis treści Wstęp... 1 Układy... 3 Zmiana tekstu... 4 Obrazki... 5 Elementy... 6 Zdjęcia - Gratis... 6 Siatki... 8 Ramki... 10 Kształty... 12 Linie... 12
Bardziej szczegółowoLaboratorium 7 Blog: dodawanie i edycja wpisów
Laboratorium 7 Blog: dodawanie i edycja wpisów Dodawanie nowych wpisów Tworzenie formularza Za obsługę formularzy odpowiada klasa Zend_Form. Dla każdego formularza w projekcie tworzymy klasę dziedziczącą
Bardziej szczegółowoBackend Administratora
Backend Administratora mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 W tym celu korzystając z konsoli wydajemy polecenie: symfony generate:app backend Wówczas zostanie stworzona
Bardziej szczegółowoGrafika na stronie www
Grafika na stronie www Grafika wektorowa (obiektowa) To grafika której obraz jest tworzony z obiektów podstawowych najczęściej lini, figur geomtrycznych obrazy są całkowicie skalowalne Popularne programy
Bardziej szczegółowoAplikacje internetowe - laboratorium
Aplikacje internetowe - laboratorium PHP Celem ćwiczenia jest przygotowanie prostej aplikacji internetowej opartej o język PHP. Aplikacja ilustruje takie mechanizmy jak: obsługa formularzy oraz obsługa
Bardziej szczegółowoGRAFIKA RASTROWA. WYKŁAD 2 Oprogramowanie i formaty plików. Jacek Wiślicki Katedra Informatyki Stosowanej
GRAFIKA RASTROWA WYKŁAD 2 Oprogramowanie i formaty plików Jacek Wiślicki Katedra Informatyki Stosowanej Oprogramowanie Na rynku istnieje wiele programów do tworzenia i przetwarzania grafiki rastrowej.
Bardziej szczegółowoSmarty PHP. Leksykon kieszonkowy
IDZ DO PRZYK ADOWY ROZDZIA SPIS TREœCI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG Smarty PHP. Leksykon kieszonkowy Autor: Daniel Bargie³ ISBN: 83-246-0676-9 Format: B6, stron: 112 TWÓJ KOSZYK
Bardziej szczegółowoRozdział ten zawiera informacje o sposobie konfiguracji i działania Modułu OPC.
1 Moduł OPC Moduł OPC pozwala na komunikację z serwerami OPC pracującymi w oparciu o model DA (Data Access). Dzięki niemu można odczytać stan obiektów OPC (zmiennych zdefiniowanych w programie PLC), a
Bardziej szczegółowoBaza danych do przechowywania użytkowników
System logowania i rejestracji jest bardzo przydatną funkcjonalnością na każdej stronie. Umożliwia sprawną identyfikację i zarządzanie użytkownikami. Strona ze skryptem logowania nabiera dużej wartości.
Bardziej szczegółowoetrader Pekao Podręcznik użytkownika Strumieniowanie Excel
etrader Pekao Podręcznik użytkownika Strumieniowanie Excel Spis treści 1. Opis okna... 3 2. Otwieranie okna... 3 3. Zawartość okna... 4 3.1. Definiowanie listy instrumentów... 4 3.2. Modyfikacja lub usunięcie
Bardziej szczegółowoTworzenie szablonów użytkownika
Poradnik Inżyniera Nr 40 Aktualizacja: 12/2018 Tworzenie szablonów użytkownika Program: Plik powiązany: Stratygrafia 3D - karty otworów Demo_manual_40.gsg Głównym celem niniejszego Przewodnika Inżyniera
Bardziej szczegółowoJak dodać własny szablon ramki w programie dibudka i dilustro
Aby dodać własną ramkę otwórz moduł administracyjny dibudkaadmin.exe, wejdź do zakładki Ramki, tła, id i następnie Edycja. 1. Kliknij przycisk Dodaj ramkę 2. Określ wymiary nowej ramki Jeżeli dodajesz
Bardziej szczegółowoScenariusz lekcji. Scenariusz lekcji. opisać działanie narzędzi przybornika. korzystać z Edytora postaci programu Logomocja;
Kolorowe neony Scenariusz lekcji Scenariusz lekcji 1 TEMAT LEKCJI: Kolorowe neony 2 CELE LEKCJI: 2.1 Wiadomości: Uczeń potrafi: opisać sposób tworzenia animacji; wyjaśnić pojęcie klatka ; opisać działanie
Bardziej szczegółowoINSTRUKCJE WIKAMP Dotyczy wersji systemu z dnia
INSTRUKCJE WIKAMP Dotyczy wersji systemu z dnia 22.04.2016 Spis treści: Jak zmienić hasło?... 1 Jak zmodyfikować profil użytkownika?... 5 Jak zmienić hasło? 1 S t r o n a Hasło umożliwia zalogowanie się
Bardziej szczegółowoKsięgarnia internetowa Lubię to!» Nasza społeczność
Kup książkę Poleć książkę Oceń książkę Księgarnia internetowa Lubię to!» Nasza społeczność Spis treści Rozdział 1. Zastosowanie komputera w życiu codziennym... 5 Rozdział 2. Elementy zestawu komputerowego...13
Bardziej szczegółowoTWORZENIE DANYCH DO DRUKU W PROGRAMIE MICROSOFT POWERPOINT 2013
TWORZENIE DANYCH DO DRUKU W PROGRAMIE MICROSOFT POWERPOINT 2013 Niniejsza instrukcja nie daje gwarancji utworzenia prawidłowych danych do druku. Jest to raczej wskazówka pomocnicza. Jeśli nie masz doświadczenia
Bardziej szczegółowoKRYPTOGRAFIA I OCHRONA DANYCH PROJEKT
KRYPTOGRAFIA I OCHRONA DANYCH PROJEKT Temat: Zaimplementować system kryptografii wizualnej http://www.cacr.math.uwaterloo.ca/~dstinson/visual.html Autor: Tomasz Mitręga NSMW Grupa 1 Sekcja 2 1. Temat projektu
Bardziej szczegółowoDane - pobieranie, przekazywanie i przechowywanie. dr Beata Kuźmińska-Sołśnia
Dane - pobieranie, przekazywanie i przechowywanie dr Beata Kuźmińska-Sołśnia Definicja funkcji function nazwa (lista parametrów) { blok instrukcji Użycie instrukcji return wartość kończy działanie funkcji
Bardziej szczegółowoPLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),
PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy
Bardziej szczegółowoPoczta elektroniczna ( ) służy do przesyłania i odbierania listów elektronicznych np.: wiadomości tekstowych, multimedialnych itp.
Poczta elektroniczna (e-mail) służy do przesyłania i odbierania listów elektronicznych np.: wiadomości tekstowych, multimedialnych itp. Jest ona również przydatna podczas zakładania innych kont umożliwiających
Bardziej szczegółowoe-sprawdzian instrukcja programu do sprawdzania wiedzy ucznia przy pomocy komputera (WINDOWS & LINUX)
instrukcja programu do sprawdzania wiedzy ucznia przy pomocy komputera (WINDOWS & LINUX) Spis treści: 1. Wstęp. 2. Prawne aspekty używania programu. 3. Jak zdobyć e-sprawdzian. 4. Uruchomienie programu.
Bardziej szczegółowoPHICS - Polish Harbours Information & Control System Dokumentacja użytkownika System weryfikacji autentyczności polskich dokumentów marynarzy
PHICS - Polish Harbours Information & Control System Dokumentacja użytkownika System weryfikacji autentyczności polskich dokumentów marynarzy Zielona Góra, kwiecień 2014 DOKUMENTACJA ZMIAN: Lp. Wersja
Bardziej szczegółowoZmienne i stałe w PHP
Zmienne i stałe w PHP Zmienne Zmienne to konstrukcje programistyczne, które pozwalają na przechowywanie danych. Każda zmienna posiada swoją nazwę oraz typ. Nazwa to jednoznaczny identyfikator, dzięki któremu
Bardziej szczegółowoGrafika rastrowa (bitmapa)-
Grafika komputerowa Grafika rastrowa Grafika rastrowa (bitmapa)- sposób zapisu obrazów w postaci prostokątnej tablicy wartości, opisujących kolory poszczególnych punktów obrazu (prostokątów składowych).
Bardziej szczegółowoRozszerzenia plików graficznych do publkacji internetowych- Kasia Ząbek kl. 2dT
Rozszerzenia plików graficznych do publkacji internetowych- Kasia Ząbek kl. 2dT Plik graficzny o formacie ".tiff" TIFF (ang. Tagged Image File Format)- komputerowy format plików graficznych służy on do
Bardziej szczegółowoJak ustawić cele kampanii?
Jak ustawić cele kampanii? Czym są cele? Jest to funkcjonalność pozwalająca w łatwy sposób śledzić konwersje wygenerowane na Twojej stronie www poprzez wiadomości email wysłane z systemu GetResponse. Mierzenie
Bardziej szczegółowoPomoc dla systemu WordPress
Pomoc dla systemu WordPress Ten plik pomocy przeznaczony jest dla pluginu stat24 w wersji 0.2. W tym pluginie porzucono wsparcie dla starszych wersji WordPress (niższych niż 1.5) oraz zrezygnowano z opcji
Bardziej szczegółowoDokumentacja systemu NTP rekrut. Autor: Sławomir Miller
Dokumentacja systemu NTP rekrut Autor: Sławomir Miller 1 Spis treści: 1. Wstęp 1.1 Wprowadzenie 1.2 Zakres dokumentu 2. Instalacja 2.1 Wymagania systemowe 2.2 Początek 2.3 Prawa dostępu 2.4 Etapy instalacji
Bardziej szczegółowoZalogowanie generuje nowe menu: okno do wysyłania plików oraz dodatkowe menu Pomoc
Jak zamieszczać i edytować artykuły na szkolnej stronie internetowej autor poradnika - KS 1. Aby dodać artykuł należy się zalogować: System pokaże nazwę zalogowanego użytkownika (lewy dół strony) Zalogowanie
Bardziej szczegółowoPierwsza strona internetowa
HTML i CSS Pierwsza strona internetowa Rozpoczynając pracę na swoim komputerze powinieneś posiadać: dowolny edytor tekstowy (np. Notatnik), dostęp do Internetu, Microsoft Visual Studio. Podstawy formatowania
Bardziej szczegółowo// Potrzebne do memset oraz memcpy, czyli kopiowania bloków
ZAWARTOŚCI 3 PLIKOW W WORDZIE: MAIN.CPP: #include #include #include pamięci // Potrzebne do memset oraz memcpy, czyli kopiowania bloków #include "Rysowanie_BMP.h" using
Bardziej szczegółowoJak przygotować? Wymiary reklam: Spad. Bez spadu
Jak przygotować? Wymiary reklam: Spad Obszar druku, który wychodzi poza krawędź ostatecznej publikacji. Spad gwarantuje, że obszar druku będzie dochodził do samej krawędzi po przycięciu arkusza. Przy naszych
Bardziej szczegółowoInstrukcja krok po kroku w darmowym programie PhotoScape
JAK DODAĆ NAPIS NA ZDJĘCIE I ZMIENIĆ JEGO KOLOR? Instrukcja krok po kroku w darmowym programie PhotoScape TO UŁATWI CI PRACĘ kilka wskazówek PhotoScape to darmowy, bardzo prosty w obsłudze program do podstawowej
Bardziej szczegółowoWysyłanie pliku na serwer. Plik na serwerze.
Wysyłanie pliku na serwer Dzięki PHP możemy w łatwy i przyjemny sposób obsłużyć pliki uploadowane na serwer. Jednak, by prawidłowo wysłać plik, niezbędny będzie odpowiedni formularz HTML. Poniżej przedstawię
Bardziej szczegółowo14. POZOSTAŁE CIEKAWE FUNKCJE
14. POZOSTAŁE CIEKAWE FUNKCJE Funkcji jest cała masa, których nie poruszono w tym kursie. Bardziej ciekawe postaram się właśnie w tej lekcji omówić. Na pewno wielu z Was, czeka z niecierpliwością na funkcję
Bardziej szczegółowoTworzenie prezentacji w MS PowerPoint
Tworzenie prezentacji w MS PowerPoint Program PowerPoint dostarczany jest w pakiecie Office i daje nam możliwość stworzenia prezentacji oraz uatrakcyjnienia materiału, który chcemy przedstawić. Prezentacje
Bardziej szczegółowoPHP: bloki kodu, tablice, obiekty i formularze
1 PHP: bloki kodu, tablice, obiekty i formularze SYSTEMY SIECIOWE Michał Simiński 2 Bloki kodu Blok if-else Switch Pętle Funkcje Blok if-else 3 W PHP blok if i blok if-else wyglądają tak samo i funkcjonują
Bardziej szczegółowoautor poradnika - KS Jak zamieszczać i edytować artykuły na szkolnej stronie internetowej
Jak zamieszczać i edytować artykuły na szkolnej stronie internetowej adres naszej strony: www.zs3.wroc.pl logo liceum 1. Aby dodać artykuł należy się zalogować: System pokaże nazwę zalogowanego użytkownika
Bardziej szczegółowoGrafika komputerowa. Dla DSI II
Grafika komputerowa Dla DSI II Rodzaje grafiki Tradycyjny podział grafiki oznacza wyróżnienie jej dwóch rodzajów: grafiki rastrowej oraz wektorowej. Różnica pomiędzy nimi polega na innej interpretacji
Bardziej szczegółowoDokumentacja WebMaster ver 1.0
1 Wstęp Dokumentacja WebMaster ver 1.0 Dokumentacja ta przeznaczona jest dla webmasterów, grafików, programistów. Przedstawia ona strukturę aplikacji SOTEeSKLEP, opisuje działanie oraz wyjaśnia m.in. jak
Bardziej szczegółowoZakres treści Czas. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów
Aplikacje internetowe KL. III Rok szkolny: 011/01 Nr programu: 31[01]/T,SP/MENIS/004.06.14 Okres kształcenia: łącznie ok. 180 godz. lekcyjne Wojciech Borzyszkowski Zenon Kreft Moduł Bok wprowadzający Podstawy
Bardziej szczegółowoMS Word 2010. Długi dokument. Praca z długim dokumentem. Kinga Sorkowska 2011-12-30
MS Word 2010 Długi dokument Praca z długim dokumentem Kinga Sorkowska 2011-12-30 Dodawanie strony tytułowej 1 W programie Microsoft Word udostępniono wygodną galerię wstępnie zdefiniowanych stron tytułowych.
Bardziej szczegółowoByć może jesteś doświadczonym programistą, biegle programujesz w Javie,
Kompendium PHP 01 Być może jesteś doświadczonym programistą, biegle programujesz w Javie, C++, Pythonie lub jakimś innym języku programowania, których jak myślę, powstało już tyle, że chyba nie ma osoby,
Bardziej szczegółowoEDYCJA TEKSTU MS WORDPAD
EDYCJA TEKSTU MS WORDPAD EDYCJA TEKSTU - MS WORDPAD WordPad (ryc. 1 ang. miejsce na słowa) to bardzo przydatny program do edycji i pisania tekstów, który dodatkowo dostępny jest w każdym systemie z rodziny
Bardziej szczegółowoZawartość specyfikacji:
Zawartość specyfikacji: Wielkość, waga i kodowanie Umieszczanie obrazków w kreacji Elementy niedopuszczalne Nazewnictwo plików Stopka mailingu Nie spełniam wymagań pracodawcy Waga, wielkość i kodowanie
Bardziej szczegółowoInstrukcja - blogi OK zeszyt Logowanie
Instrukcja - blogi OK zeszyt Logowanie 1. Proszę wejść na stronę http://okblogi.ceo.org.pl/ 2. Po prawej stronie znajduje się link do logowania: 3. Proszę wpisać dane logowania: Nazwa Twojego bloga Twój
Bardziej szczegółowoPrzy dużej wielkości głębokości uzyskamy wrażenie nieskończoności: Dla głębokości zerowej uzyskamy tekst płaski:
Temat 6: Tekst w przestrzeni trójwymiarowej. Podstawy tworzenia animacji. Instrukcja warunkowa if. Program pozwala umieszczać na scenie nie tylko bryły, czy figury płaskie, ale też tekst. Polecenie tworzące
Bardziej szczegółowoWprowadzenie do Internetu Zajęcia 5
Zajęcia 5 Formularze w PHP Przekazywanie danych ze strony do skryptu PHP Dane ze strony WWW do skryptu PHP można przekazać za pomocą formularzy. W tym celu należy stworzyć formularz (znacznik ),
Bardziej szczegółowoFormaty plików graficznych
Formaty plików graficznych grafika rastowa grafika wektorowa Grafika rastrowa Grafika rastrowa służy do zapisywania zdjęć i realistycznych obrazów Jakość obrazka rastrowego jest określana przez całkowitą
Bardziej szczegółowoPo zakończeniu rozważań na temat World Wide Web, poznaniu zasad organizacji witryn WWW, przeczytaniu kilkudziesięciu stron i poznaniu wielu nowych
rk Po zakończeniu rozważań na temat World Wide Web, poznaniu zasad organizacji witryn WWW, przeczytaniu kilkudziesięciu stron i poznaniu wielu nowych pojęć, prawdopodobnie zastanawiasz się, kiedy zaczniesz
Bardziej szczegółowo1.2 Logo Sonel podstawowe załoŝenia
1.2 Logo Sonel podstawowe załoŝenia Logo czyli graficzna forma przedstawienia symbolu i nazwy firmy. Terminu logo uŝywamy dla całego znaku, składającego się z sygnetu (symbolu graficznego) i logotypu (tekstowego
Bardziej szczegółowoTechnologie Internetowe Raport z wykonanego projektu Temat: Internetowy sklep elektroniczny
Technologie Internetowe Raport z wykonanego projektu Temat: Internetowy sklep elektroniczny AiRIII gr. 2TI sekcja 1 Autorzy: Tomasz Bizon Józef Wawrzyczek 2 1. Wstęp Celem projektu było stworzenie sklepu
Bardziej szczegółowoPokaz slajdów na stronie internetowej
Pokaz slajdów na stronie internetowej... 1 Podpisy pod zdjęciami... 3 Publikacja pokazu slajdów w Internecie... 4 Generator strony Uczelni... 4 Funkcje dla zaawansowanych użytkowników... 5 Zmiana kolorów
Bardziej szczegółowoTworzenie własnych map dla UI-View
Tworzenie własnych map dla UI-View Na początek musimy wejść na stronę http://gm2tb.awokenmind.de/ Następnym krokiem jest ustalenie obszaru, który chcemy aby był dostępny w UI-View. Po widocznym oknie poruszamy
Bardziej szczegółowo1. Pobieranie i instalacja FotoSendera
Jak zamówić zdjęcia przez FotoSender? Spis treści: 1. Pobieranie i instalacja FotoSendera 2. Logowanie 3. Opis okna programu 4. Tworzenie i wysyłanie zlecenia Krok 1: Wybór zdjęć Krok 2: Podsumowanie zlecenia
Bardziej szczegółowoDokumentacja fillup - MS SQL
Dokumentacja fillup - MS SQL e-file.pl 28 lipca 2017 Spis treści Wstęp 2 Wymagania sprzętowe 2 Windows Server 2012.......................... 2 Windows 10............................... 3 MS SQL Server.............................
Bardziej szczegółowoObsługa programu Paint. mgr Katarzyna Paliwoda
Obsługa programu Paint. mgr Katarzyna Paliwoda Podstawowo program mieści się w Systemie a dojście do niego odbywa się przez polecenia: Start- Wszystkie programy - Akcesoria - Paint. Program otwiera się
Bardziej szczegółowoInstrukcja użytkownika
Instrukcja użytkownika Bydgoszcz 2017 Strona: 1/12 Spis treści 1 Konfiguracja i obsługa funkcjonalności... 3-1.1 Wstęp... 3 1.2 Konfiguracja stacji klienckiej... 3 1.3 Weryfikacja istniejącego dokumentu...
Bardziej szczegółowoGRAFIKA RASTROWA. WYKŁAD 1 Wprowadzenie do grafiki rastrowej. Jacek Wiślicki Katedra Informatyki Stosowanej
GRAFIKA RASTROWA WYKŁAD 1 Wprowadzenie do grafiki rastrowej Jacek Wiślicki Katedra Informatyki Stosowanej Grafika rastrowa i wektorowa W grafice dwuwymiarowej wyróżnia się dwa rodzaje obrazów: rastrowe,
Bardziej szczegółowoSTRONY INTERNETOWE mgr inż. Adrian Zapała
1 STRONY INTERNETOWE mgr inż. Adrian Zapała STRONY INTERNETOWE Rodzaje stron internetowych statyczne (statyczny HTML + CSS) dynamiczne (PHP, ASP, technologie Flash) 2 JĘZYKI STRON WWW HTML (ang. HyperText
Bardziej szczegółowoUmieszczanie kodu. kod skryptu
PHP Definicja PHP jest językiem skryptowym służącym do rozszerzania możliwości stron internetowych. Jego składnia jest bardzo podobna do popularnych języków programowania C/C++, lecz jest bardzo uproszczona
Bardziej szczegółowo,Aplikacja Okazje SMS
, jest rozwiązaniem, które umożliwia bez umiejętności programistycznych uruchomić własną aplikację na fanpage-u firmy lub marki. Pozwala ona na dodanie numeru telefonu do swojej bazy w SerwerSMS.pl, umożliwiając
Bardziej szczegółowoProjektowanie przy uz yciu motywo w częś c 1: informacje podśtawowe
Projektowanie przy uz yciu motywo w częś c 1: informacje podśtawowe Motyw to skoordynowany zestaw czcionek, kolorów i efektów wizualnych. Za pomocą pojedynczego kliknięcia można zastosować jeden z kilkudziesięciu
Bardziej szczegółowonarzędzie Linia. 2. W polu koloru kliknij kolor, którego chcesz użyć. 3. Aby coś narysować, przeciągnij wskaźnikiem w obszarze rysowania.
Elementy programu Paint Aby otworzyć program Paint, należy kliknąć przycisk Start i Paint., Wszystkie programy, Akcesoria Po uruchomieniu programu Paint jest wyświetlane okno, które jest w większej części
Bardziej szczegółowoWORDPRESS INSTRUKCJA OBSŁUGI
WORDPRESS INSTRUKCJA OBSŁUGI Zapraszamy do zapoznania się z Instrukcją obsługi panelu CMS Wordpress, która w krótkim czasie i bez większego kłopotu pozwoli na edycję treści i zawartości strony, w tym:
Bardziej szczegółowoGRAFIKA. Rodzaje grafiki i odpowiadające im edytory
GRAFIKA Rodzaje grafiki i odpowiadające im edytory Obraz graficzny w komputerze Może być: utworzony automatycznie przez wybrany program (np. jako wykres w arkuszu kalkulacyjnym) lub urządzenie (np. zdjęcie
Bardziej szczegółowoAPLIKACJA SHAREPOINT
APLIKACJA SHAREPOINT Spis treści 1. Co to jest SharePoint?... 2 2. Tworzenie nowej witryny SharePoint (obszar roboczy)... 2 3. Gdzie znaleźć utworzone witryny SharePoint?... 3 4. Personalizacja obszaru
Bardziej szczegółowoFunkcje i instrukcje języka JavaScript
Funkcje i instrukcje języka JavaScript 1. Cele lekcji a) Wiadomości Uczeń : zna operatory i typy danych języka JavaScript, zna konstrukcję definicji funkcji, zna pętlę If i For, Do i While oraz podaje
Bardziej szczegółowoAplikacje WWW - laboratorium
Aplikacje WWW - laboratorium Język JavaScript Celem ćwiczenia jest przygotowanie formularza HTML z wykorzystaniem języka JavaScript. Formularz ten będzie sprawdzany pod względem zawartości przed wysłaniem
Bardziej szczegółowoAutoCAD LT praca na obiektach rastrowych i nakładanie barw z palety RGB na rysunki.
AutoCAD LT praca na obiektach rastrowych i nakładanie barw z palety RGB na rysunki. Niniejsza instrukcja jest przewodnikiem po narzędziach służących do wstawiania i edycji obiektów rastrowych dostępnych
Bardziej szczegółowoINTERNETOWE BAZY DANYCH materiały pomocnicze - wykład VII
Wrocław 2006 INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład VII Paweł Skrobanek C-3, pok. 323 e-mail: pawel.skrobanek@pwr.wroc.pl INTERNETOWE BAZY DANYCH PLAN NA DZIŚ : Cookies Sesje Inne możliwości
Bardziej szczegółowo1. Przypisy, indeks i spisy.
1. Przypisy, indeks i spisy. (Wstaw Odwołanie Przypis dolny - ) (Wstaw Odwołanie Indeks i spisy - ) Przypisy dolne i końcowe w drukowanych dokumentach umożliwiają umieszczanie w dokumencie objaśnień, komentarzy
Bardziej szczegółowoInstalacja (GM) AMXBans #1.5.1/ #1.6.1 na serwerze gry/stronie WWW. Wymagania
Instalacja (GM) AMXBans #1.5.1/ #1.6.1 na serwerze gry/stronie WWW Wymagania Aby poprawnie zainstalować (GM) AMXBans # 1.5.1/ # 1.6.1, potrzebujemy; * Najnowsze wydanie MetaModa * Najnowsza wersja AMXMod
Bardziej szczegółowoWstawianie nowej strony
Wstawianie nowej strony W obszernych dokumentach będziemy spotykali się z potrzebą dzielenia dokumentu na części. Czynność tę wykorzystujemy np.. do rozpoczęcia pisania nowego rozdziału na kolejnej stronie.
Bardziej szczegółowoTWORZENIE PREZENTACJI MS POWERPOINT
TWORZENIE PREZENTACJI MS POWERPOINT Wstęp TWORZENIE PREZENTACJI MS POWERPOINT Czasami zdarza się, że zostajemy poproszeni o poprowadzenia spotkania czy szkolenia w firmie, w której pracujemy lub po prostu
Bardziej szczegółowoWarunki techniczne prezentacji reklam
Warunki techniczne prezentacji reklam Do: Reklamodawcy Data utworzenia: 2007-06-29 Liczba stron: 9 Typ opracowania: Specyfikacja techniczna Rodzaj dokumentu: dokument jawny Adres: Plocman Sp. z o.o. ul.
Bardziej szczegółowoWirtualna tablica. Padlet: https://pl.padlet.com/ Padlet nazywany jest wirtualną tablicą, ścianą lub kartką strony internetowej.
Wirtualna tablica Padlet: https://pl.padlet.com/ Padlet nazywany jest wirtualną tablicą, ścianą lub kartką strony internetowej. To proste w obsłudze narzędzie może służyć jako tablica informacyjna lub
Bardziej szczegółowoTworzenie menu i authoring w programie DVDStyler
Tworzenie menu i authoring w programie DVDStyler DVDStyler jest to wieloplatformowy program do authoringu płyt DVD (tworzenia płyt DVD z indywidualnym menu, grafiką i materiałem filmowym). Dzięki niemu
Bardziej szczegółowoZawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6
Zawartość Wstęp... 1 Instalacja... 2 Konfiguracja... 2 Uruchomienie i praca z raportem... 6 Wstęp Rozwiązanie przygotowane z myślą o użytkownikach którzy potrzebują narzędzie do podziału, rozkładu, rozbiórki
Bardziej szczegółowoProjektowanie stron WWW
Projektowanie stron WWW Projektowanie stron WWW, podobnie jak tworzenie wstępnego zarysu książki, planowanie czy malowanie, może być czasami bardzo złożonym procesem. Wcześniejsze opracowanie ogólnego
Bardziej szczegółowoWyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w
Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w obrębie skryptu. Wyrażenia include() i require() są niemal
Bardziej szczegółowo