Artykuł pochodzi z czasopisma PHP Solutions. Do ściągnięcia bezpłatnie ze strony:

Wielkość: px
Rozpocząć pokaz od strony:

Download "Artykuł pochodzi z czasopisma PHP Solutions. Do ściągnięcia bezpłatnie ze strony:"

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. 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ółowo

Grafika PHP dla początkujących

Grafika 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ółowo

Aplikacje WWW - laboratorium

Aplikacje 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ółowo

I. Informacje ogólne. Jednym z takich systemów jest Mambo.

I. 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ółowo

Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/

Kurs 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ółowo

Część II Wyświetlanie obrazów

Część 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ółowo

8. Dynamiczne generowanie grafiki, cz. 2

8. 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) Ć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ółowo

Podstawy technologii WWW

Podstawy 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ółowo

Podstawy technologii WWW

Podstawy 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ółowo

Generatory pomocy multimedialnych

Generatory 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ółowo

Materiał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 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ółowo

Cała prawda o plikach grafiki rastrowej

Cał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ółowo

FORMATY PLIKÓW GRAFICZNYCH

FORMATY 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ółowo

Konfiguracja szablonu i wystawienie pierwszej aukcji allegro

Konfiguracja 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ółowo

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do

Kontrola 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ółowo

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.

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. 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ółowo

Formaty obrazów rastrowych biblioteki PBM

Formaty 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ółowo

Tworzenie infografik za pomocą narzędzia Canva

Tworzenie 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ółowo

Laboratorium 7 Blog: dodawanie i edycja wpisów

Laboratorium 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ółowo

Backend Administratora

Backend 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ółowo

Grafika na stronie www

Grafika 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ółowo

Aplikacje internetowe - laboratorium

Aplikacje 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ółowo

GRAFIKA 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 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ółowo

Smarty PHP. Leksykon kieszonkowy

Smarty 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ółowo

Rozdział ten zawiera informacje o sposobie konfiguracji i działania Modułu OPC.

Rozdział 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ółowo

Baza danych do przechowywania użytkowników

Baza 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ółowo

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel

etrader 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ółowo

Tworzenie szablonów użytkownika

Tworzenie 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ółowo

Jak dodać własny szablon ramki w programie dibudka i dilustro

Jak 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ółowo

Scenariusz lekcji. Scenariusz lekcji. opisać działanie narzędzi przybornika. korzystać z Edytora postaci programu Logomocja;

Scenariusz 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ółowo

INSTRUKCJE WIKAMP Dotyczy wersji systemu z dnia

INSTRUKCJE 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ółowo

Księgarnia internetowa Lubię to!» Nasza społeczność

Księ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ółowo

TWORZENIE DANYCH DO DRUKU W PROGRAMIE MICROSOFT POWERPOINT 2013

TWORZENIE 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ółowo

KRYPTOGRAFIA I OCHRONA DANYCH PROJEKT

KRYPTOGRAFIA 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ółowo

Dane - pobieranie, przekazywanie i przechowywanie. dr Beata Kuźmińska-Sołśnia

Dane - 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ółowo

PLAN 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 ), 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ółowo

Poczta elektroniczna ( ) służy do przesyłania i odbierania listów elektronicznych np.: wiadomości tekstowych, multimedialnych itp.

Poczta 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ółowo

e-sprawdzian instrukcja programu do sprawdzania wiedzy ucznia przy pomocy komputera (WINDOWS & LINUX)

e-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ółowo

PHICS - 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 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ółowo

Zmienne i stałe w PHP

Zmienne 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ółowo

Grafika rastrowa (bitmapa)-

Grafika 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ółowo

Rozszerzenia plików graficznych do publkacji internetowych- Kasia Ząbek kl. 2dT

Rozszerzenia 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ółowo

Jak ustawić cele kampanii?

Jak 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ółowo

Pomoc dla systemu WordPress

Pomoc 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ółowo

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller

Dokumentacja 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ółowo

Zalogowanie generuje nowe menu: okno do wysyłania plików oraz dodatkowe menu Pomoc

Zalogowanie 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ółowo

Pierwsza strona internetowa

Pierwsza 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

// 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ółowo

Jak przygotować? Wymiary reklam: Spad. Bez spadu

Jak 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ółowo

Instrukcja krok po kroku w darmowym programie PhotoScape

Instrukcja 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ółowo

Wysyłanie pliku na serwer. Plik na serwerze.

Wysył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ółowo

14. POZOSTAŁE CIEKAWE FUNKCJE

14. 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ółowo

Tworzenie prezentacji w MS PowerPoint

Tworzenie 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ółowo

PHP: bloki kodu, tablice, obiekty i formularze

PHP: 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ółowo

autor poradnika - KS Jak zamieszczać i edytować artykuły na szkolnej stronie internetowej

autor 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ółowo

Grafika komputerowa. Dla DSI II

Grafika 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ółowo

Dokumentacja WebMaster ver 1.0

Dokumentacja 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ółowo

Zakres treści Czas. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

Zakres 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ółowo

MS 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 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ółowo

Być może jesteś doświadczonym programistą, biegle programujesz w Javie,

Być 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ółowo

EDYCJA TEKSTU MS WORDPAD

EDYCJA 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ółowo

Zawartość specyfikacji:

Zawartość 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ółowo

Instrukcja - blogi OK zeszyt Logowanie

Instrukcja - 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ółowo

Przy dużej wielkości głębokości uzyskamy wrażenie nieskończoności: Dla głębokości zerowej uzyskamy tekst płaski:

Przy 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ółowo

Wprowadzenie do Internetu Zajęcia 5

Wprowadzenie 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ółowo

Formaty plików graficznych

Formaty 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ółowo

Po zakończeniu rozważań na temat World Wide Web, poznaniu zasad organizacji witryn WWW, przeczytaniu kilkudziesięciu stron i poznaniu wielu nowych

Po 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ółowo

1.2 Logo Sonel podstawowe załoŝenia

1.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ółowo

Technologie Internetowe Raport z wykonanego projektu Temat: Internetowy sklep elektroniczny

Technologie 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ółowo

Pokaz slajdów na stronie internetowej

Pokaz 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ółowo

Tworzenie własnych map dla UI-View

Tworzenie 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ółowo

1. Pobieranie i instalacja FotoSendera

1. 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ółowo

Dokumentacja fillup - MS SQL

Dokumentacja 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ółowo

Obsługa programu Paint. mgr Katarzyna Paliwoda

Obsł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ółowo

Instrukcja użytkownika

Instrukcja 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ółowo

GRAFIKA 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 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ółowo

STRONY INTERNETOWE mgr inż. Adrian Zapała

STRONY 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ółowo

Umieszczanie kodu. kod skryptu

Umieszczanie 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

,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ółowo

Projektowanie przy uz yciu motywo w częś c 1: informacje podśtawowe

Projektowanie 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ółowo

narzędzie Linia. 2. W polu koloru kliknij kolor, którego chcesz użyć. 3. Aby coś narysować, przeciągnij wskaźnikiem w obszarze rysowania.

narzę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ółowo

WORDPRESS INSTRUKCJA OBSŁUGI

WORDPRESS 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ółowo

GRAFIKA. Rodzaje grafiki i odpowiadające im edytory

GRAFIKA. 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ółowo

APLIKACJA SHAREPOINT

APLIKACJA 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ółowo

Funkcje i instrukcje języka JavaScript

Funkcje 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ółowo

Aplikacje WWW - laboratorium

Aplikacje 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ółowo

AutoCAD 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. 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ółowo

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład VII

INTERNETOWE 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ółowo

1. Przypisy, indeks i spisy.

1. 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ółowo

Instalacja (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 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ółowo

Wstawianie nowej strony

Wstawianie 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ółowo

TWORZENIE PREZENTACJI MS POWERPOINT

TWORZENIE 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ółowo

Warunki techniczne prezentacji reklam

Warunki 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ółowo

Wirtualna 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. 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ółowo

Tworzenie menu i authoring w programie DVDStyler

Tworzenie 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ółowo

Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6

Zawartość. 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ółowo

Projektowanie stron WWW

Projektowanie 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ółowo

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

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 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