| | Temat wykladu: |
| | PHP: Biblioteka GD: generowanie grafiki w PHP (by Michu, 2007-11-14) @ wyklady.net |
| | Komentarze: http://forum.wyklady.net/index.php?topic=121.0 |
20:39 | Michu | witam wszystkich na wykladzie o bibliotece GD w php |
20:39 | Michu | służy ona do generowania grafiki w php |
20:40 | Michu | jak sprawdzic czy nasz serwer obsługuje GD |
20:40 | Michu | jest na to bardzo prosty sposób |
20:40 | Michu | wpisujemy |
20:40 | Michu | <?php |
20:40 | Michu | info(); |
20:40 | Michu | ?> |
20:40 | Michu | i w jednej z kolumn powinna być informacja o bibliotekach GD |
20:41 | Michu | jezeli |
20:41 | Michu | mamy te biblioteki |
20:41 | Michu | to mozemy zacząc pisac nasz pierwszy skrypt |
20:41 | Michu | bedze on generował |
20:41 | Michu | obraz png |
20:41 | Michu | ot jego kod |
20:42 | Michu | <?php |
20:42 | Michu | header("Content-type: image/png"); |
20:42 | Michu | $obrazek = @imagecreate(200, 30) |
20:42 | Michu | or die( "Nie można zainicjować strumienia GD" ); |
20:42 | Michu | $kolor_tla = imagecolorallocate ( $obrazek, 255, 255, 255 ); |
20:42 | Michu | $kolor_tekstu = imagecolorallocate ( $obrazek, 0, 0, 0 ); |
20:42 | Michu | imagestring ( $obrazek, 5, 10, 10, "Hello PHP_GD!", $kolor_tekstu ); |
20:42 | Michu | imagepng ( $obrazek ); |
20:42 | Michu | imagedestroy( $obrazek ); |
20:42 | Michu | ?> |
20:42 | Michu | to zacznijmy go analizowac |
20:42 | Michu | by dowiedziec sie co on robi |
20:42 | Michu | 2 linijka |
20:42 | Michu | zawiera funkcje header() |
20:43 | Michu | przekazuje ona w tym wypadku informacje jakei |
20:43 | Michu | rozszerzenie bedze miał plik |
20:43 | Michu | który generujemy |
20:43 | Michu | czyli png |
20:43 | Michu | 3 linijka |
20:43 | Michu | tworzy obrazek |
20:43 | Michu | 200 na 30 px |
20:43 | Michu | @ przed funkcją powoduje |
20:43 | Michu | iz w razie błędu |
20:44 | Michu | błąd nie zostanie wyświetlony |
20:44 | Michu | 4 linijka |
20:44 | Michu | poprostu mówi co ma się stać gdy 3 nie zadziała |
20:44 | Michu | 5 linijka ustala kolor tła |
20:45 | Michu | służy do tego funkcje imagecolorallocate() |
20:45 | Michu | jako pierwszy parametr podajemy |
20:45 | Michu | zmienna gdzie jest obrazek |
20:45 | Michu | potem kolor |
20:45 | Michu | tu za pomoca nasycenia danego z kolorów |
20:45 | Michu | od 0 do 255 |
20:45 | Michu | 6 linijka |
20:46 | Michu | odpowiada za kolor tekstu |
20:46 | Slim | [; |
20:46 | Michu | tu tak samo 1 warosc to zmienna obrazka a pozoastałe to nasycenie kolorów |
20:46 | Michu | http://wellstyled.com/tools/colorscheme/index-en.html |
20:46 | Michu | to jest strona na której mozemy pobawić ise z nasyceniem |
20:46 | Michu | podajemy od 0 do 255 nasycenie koloru |
20:47 | Michu | teraz nastepna linijka |
20:47 | Michu | tworzy ona obrazek |
20:47 | Michu | 1 zmienna to obrazek |
20:47 | Michu | 3 liczby to położenie obrazka |
20:47 | Michu | potem jest wyświetlany tekst |
20:48 | Michu | a potem jego kolor |
20:48 | Michu | nastepna linijka wywołuje obrazek do png |
20:48 | Michu | a ostatnia niszczy obrazek |
20:48 | Michu | mam nadzieje ze omówiłem wszystko dokładnie |
20:48 | JaBoJa | Sugestia: Lepiej daj header() za ewentualnymi komunikatami o błędzie, bo inaczej dostaniesz tekst wysłany jako obrazek. |
20:48 | Michu | jezeli są pytania to prosze pisac |
20:49 | lidia | chyba brak |
20:49 | Michu | teraz zrobimy to samo |
20:49 | Michu | ale do jpg a nie do png |
20:49 | Michu | jak wiadomo jpg jes to to format mocno skapresowany |
20:49 | Michu | oto kod |
20:50 | Michu | header("Content-type: image/jpeg"); |
20:50 | Michu | $obrazek = @imagecreate(400, 300) |
20:50 | Michu | or die( "Nie można zainicjować strumienia GD" ); |
20:50 | Michu | $kolor_tla = imagecolorallocate ( $obrazek, 255, 255, 255 ); |
20:50 | Michu | $kolor_tekstu = imagecolorallocate ( $obrazek, 0, 0, 0 ); |
20:50 | Michu | imagestring ( $obrazek, 5, 20, 150, "Hello PHP_GD", $kolor_tekstu ); |
20:50 | Michu | imagejpeg ( $obrazek ); |
20:50 | Michu | imagedestroy( $obrazek ); |
20:50 | Michu | wszystko zostało omówione wcześniej wiec nie bede znów analizował kodu |
20:50 | Michu | widać ze zmienił ise nagłówek czyli header |
20:50 | Michu | z png |
20:51 | Michu | na jpg |
20:51 | Michu | i przed ostatnia linia z imagepng |
20:51 | Michu | na imagejpg |
20:51 | Michu | ale do czego to przydatne |
20:51 | Michu | najcześciej do tokenow |
20:52 | Michu | ktore sa juz troche przestarzale |
20:52 | Michu | ale nadal sie jes spotyka |
20:52 | Michu | jest cos bardziej praktycznego |
20:52 | Michu | mianowicie tworzenie miniaturek |
20:52 | Michu | zdjec |
20:52 | Michu | przydatne jak mamy serwis ze zdjeciami |
20:53 | Michu | oto jego kod |
20:53 | Michu | <?php |
20:53 | Michu | header("Content-type: image/jpeg"); |
20:53 | Michu | class Obrazek { |
20:53 | Michu | private $obrazek; |
20:53 | Michu | |
20:53 | Michu | function __construct ( $sciezka_pliku_jpg ) { |
20:53 | Michu | $this->obrazek = @imagecreatefromjpeg( $sciezka_pliku_jpg ) |
20:53 | Michu | or die( "Nie można zainicjować strumienia GD" ); |
20:53 | Michu | } |
20:53 | Michu | function destruct() { |
20:53 | Michu | imagedestroy ( $this->obrazek ); |
20:53 | Michu | } |
20:53 | Michu | public function resize ( $tbx , $tby ) { |
20:53 | Michu | $ow = imagesx($this->obrazek); |
20:53 | Michu | $oh = imagesy($this->obrazek); |
20:53 | Michu | $mid['ow'] = $tbx; |
20:53 | Michu | $mid['oh'] = $tby; |
20:53 | Michu | if ( $ow > $oh and $mid['oh'] > $oh) { |
20:53 | Michu | $mid['width'] = $mid['ow']; |
20:53 | Michu | $mid['height'] = $oh/$ow * $mid['ow']; |
20:53 | Michu | $mid_pot['width'] = 0; |
20:53 | Michu | $mid_pot['height'] = ($mid['oh'] - $mid['height']) / 2; |
20:53 | Michu | } else { |
20:54 | Michu | $mid['height'] = $mid['oh']; |
20:54 | Michu | $mid['width'] = $ow/$oh * $mid['oh']; |
20:54 | Michu | $mid_pot['height'] = 0; |
20:54 | Michu | $mid_pot['width'] = ($mid['ow'] - $mid['width']) / 2; |
20:54 | Michu | } |
20:54 | Michu | $tb = imagecreatetruecolor ( $mid['ow'], $mid['oh'] ); |
20:54 | Michu | imagecopyresized ( $tb , $this->obrazek , $mid_pot['width'], |
20:54 | Michu | $mid_pot['height'], 0, 0, |
20:54 | Michu | $mid['width'], $mid['height'], $ow, $oh ); |
20:54 | Michu | return $tb; |
20:54 | Michu | } |
20:54 | Michu | } |
20:54 | Michu | $obiektObrazka = new Obrazek ( "wakacje.jpg" ); |
20:54 | Michu | imagejpeg ( $obiektObrazka->resize (160, 90) ); |
20:54 | Michu | ?> |
20:54 | Michu | czy mam omawiac ten kod |
20:54 | Michu | czy funkcjie sa znane |
20:54 | Michu | ? |
20:54 | Michu | wiec omówie ostatnie linijki |
20:54 | Michu | gdzie sa funkcje GD |
20:54 | Michu | funkcja |
20:54 | Michu | imagecopyresized |
20:55 | Michu | zmiejsza obrazek do podanych wartości |
20:55 | Michu | czyli $mid['ow'] i $mid['oh'] |
20:55 | Michu | urzywanie tej klasy jest proste |
20:56 | Michu | tworzac klase podajemy nazwe zdjecia |
20:56 | Michu | a potem tylko podajemy do jakich wielkosci mamy je zmiejszyc |
20:56 | phini | [~phini@unarted.human] has left #wyklady: <> |
20:56 | Michu | czy jest wszystko zrozumiałe |
20:56 | Michu | ? |
20:57 | Michu | jezeli tak ot przejde do omawiania funkcji w GD |
20:57 | Michu | zaczniemy od funkcji getimagesize |
20:57 | Michu | podaje ona wielkosc obrazka |
20:58 | Michu | oto przyklad |
20:58 | Michu | <?php |
20:58 | Michu | $size = getimagesize($filename); |
20:58 | Michu | $fp = fopen($filename, "rb"); |
20:58 | Michu | if ($size && $fp) { |
20:58 | Michu | header("Content-type: {$size['mime']}"); |
20:58 | Michu | fpassthru($fp); |
20:58 | Michu | exit; |
20:58 | Michu | } else { |
20:58 | Michu | // error |
20:58 | Michu | } |
20:59 | Michu | albo prosstrzyy pprzyklad |
20:59 | Michu | <?php |
20:59 | Michu | list($width, $height, $type, $attr) = getimagesize("img/flag.jpg"); |
20:59 | Michu | echo "<img src=\"img/flag.jpg\" $attr alt=\"getimagesize() example\" />"; |
20:59 | Michu | ?> |
20:59 | Michu | mozna sprawdzic jaki da ona wynik |
20:59 | Michu | poda wielkosc obrazka |
21:00 | Michu | tu podam przyklad tworzenia prezentacji danych w GD |
21:00 | Michu | <?php |
21:00 | Michu | header("Content-type: image/jpeg"); |
21:00 | Michu | class Wykres { |
21:00 | Michu | private $dane; |
21:00 | Michu | private $tytul; |
21:00 | Michu | function __construct( $tytul, $tablica_danych ) { |
21:00 | Michu | $this->tytul = $tytul; |
21:00 | Michu | $this->dane = $tablica_danych; |
21:00 | Michu | } |
21:00 | Michu | public function wyswietl () { |
21:00 | Michu | $szerokosc = count($this->dane)*30+10; |
21:00 | Michu | $wysokosc = max($this->dane)+50; |
21:00 | Michu | $wykres = @imagecreate( $szerokosc , $wysokosc ) |
21:00 | Michu | or die( "Nie można zainicjować strumienia GD" ); |
21:01 | Michu | $kolor_tla = imagecolorallocate ( $wykres, 255, 255, 255 ); |
21:01 | Michu | $kolor_czcionki = imagecolorallocate ( $wykres, 0, 0, 0 ); |
21:01 | Michu | $od_lewej = 10; |
21:01 | Michu | foreach ($this->dane as $key => $value) { |
21:01 | Michu | $kolor = imagecolorallocate ( $wykres, |
21:01 | Michu | rand(0,230), rand(0,230), rand(0,230) ); |
21:01 | Michu | imagefilledrectangle ( $wykres, $od_lewej, $wysokosc-30, |
21:01 | Michu | $od_lewej+20, $wysokosc-$value-30, $kolor ); |
21:01 | Michu | imagettftext ( $wykres, 8, 45, $od_lewej, $wysokosc-2, |
21:01 | Michu | $kolor_czcionki, "plik-font2.ttf", $key ); |
21:01 | Michu | imagettftext ( $wykres, 8, 0, |
21:01 | Michu | $od_lewej+2, $wysokosc-$value-35, |
21:01 | Michu | $kolor_czcionki, "plik-font2.ttf", $value ); |
21:01 | Michu | $od_lewej = $od_lewej + 30; |
21:01 | Michu | } |
21:01 | Michu | imagettftext ( $wykres, 10, 0, 10, 20, |
21:01 | Michu | $kolor_czcionki, "plik-font2.ttf", $this->tytul ); |
21:01 | Michu | imagepng ( $wykres ); |
21:01 | Michu | imagedestroy ( $wykres ); |
21:01 | Michu | } |
21:01 | Michu | } |
21:01 | Michu | $tablica_danych = array ( |
21:01 | Michu | '2003' => 100, |
21:01 | Michu | '2004' => 30, |
21:01 | Michu | '2005' => 50, |
21:01 | Michu | '2006' => 78, |
21:01 | Michu | '2007' => 130, |
21:01 | Michu | '2008' => 290 |
21:02 | Michu | ); |
21:02 | Michu | $obiektWykresu = new Wykres ( "Wielkość sprzedaży\n- dane z regionów", $tablica_danych ); |
21:02 | Michu | $obiektWykresu->wyswietl(); |
21:02 | Michu | ?> |
21:02 | Michu | pokazuje ona wykles sprzedazy |
21:02 | Michu | dzieki gd |
21:02 | Michu | mozemy dac na stone |
21:02 | Michu | wykresy |
21:02 | Michu | zamiast suchych liczb |
21:02 | Michu | jak dotad tworzylismy |
21:02 | Michu | nowe obrazy a spróbujmy |
21:02 | Michu | bazować na innym służa do tego specjalne funkcj |
21:02 | Michu | e |
21:03 | Michu | imagecreatefrom{tu nazwa rozszezenia} |
21:03 | Michu | czyli np. imagecreatefromgif, imagecreatefromjpeg |
21:03 | Michu | itd |
21:03 | Michu | to przyklad do tego |
21:04 | Michu | <?php |
21:04 | Michu | function LoadGif ($imgname) |
21:04 | Michu | { |
21:04 | Michu | $im = @imagecreatefromgif ($imgname); /* Attempt to open */ |
21:04 | Michu | if (!$im) { /* See if it failed */ |
21:04 | Michu | $im = imagecreatetruecolor (150, 30); /* Create a blank image */ |
21:04 | Michu | $bgc = imagecolorallocate ($im, 255, 255, 255); |
21:04 | Michu | $tc = imagecolorallocate ($im, 0, 0, 0); |
21:04 | Michu | imagefilledrectangle ($im, 0, 0, 150, 30, $bgc); |
21:04 | Michu | /* Output an errmsg */ |
21:04 | Michu | imagestring ($im, 1, 5, 5, "Error loading $imgname", $tc); |
21:04 | Michu | } |
21:04 | Michu | return $im; |
21:04 | Michu | } |
21:04 | Michu | header("Content-Type: image/gif"); |
21:04 | Michu | $img = LoadGif("bogus.image"); |
21:04 | Michu | imagegif($img); |
21:04 | Michu | ?> |
21:04 | Michu | tworzy ona obrazek na podstawie innego |
21:04 | Michu | który ma rozszerzenie gif |
21:05 | Michu | do tworzenia linu urzywamy |
21:05 | Michu | używamy |
21:05 | Michu | imagedashedline |
21:05 | Michu | jej skladnia wyglada tak |
21:06 | Michu | ( $image, $x1, $y1, $x2, $y2, $color) |
21:06 | Michu | do tworzenia elips używamy |
21:06 | Michu | imagefilledellipse |
21:07 | Michu | może pokoże na przykladzie |
21:07 | Michu | <?php |
21:07 | Michu | $image = imagecreatetruecolor(400, 300); |
21:07 | Michu | $bg = imagecolorallocate($image, 0, 0, 0); |
21:07 | Michu | $col_ellipse = imagecolorallocate($image, 255, 255, 255); |
21:07 | Michu | imagefilledellipse($image, 200, 150, 300, 200, $col_ellipse); |
21:07 | Michu | header("Content-type: image/png"); |
21:07 | Michu | imagepng($image); |
21:07 | Michu | ?> |
21:07 | Michu | powyzszy przyklad |
21:08 | Michu | tworzy elipse |
21:08 | Michu | czy coś jest nie zrozumiałe |
21:08 | Michu | to prosze pisac |
21:08 | Michu | bo chce przejsc do 3d |
21:09 | Michu | to jezeli nie ma to sadze iz moge przejsc |
21:09 | Michu | taką iitacje 3d tez posiada GD |
21:09 | Michu | tylko dopiero do wersji |
21:10 | Michu | 2.0.1 |
21:10 | Michu | to przyklad |
21:10 | Michu | <?php |
21:10 | Michu | $image = imagecreatetruecolor(100, 100); |
21:10 | Michu | $white = imagecolorallocate($image, 0xFF, 0xFF, 0xFF); |
21:10 | Michu | $gray = imagecolorallocate($image, 0xC0, 0xC0, 0xC0); |
21:10 | Michu | $darkgray = imagecolorallocate($image, 0x90, 0x90, 0x90); |
21:10 | Michu | $navy = imagecolorallocate($image, 0x00, 0x00, 0x80); |
21:10 | Michu | $darknavy = imagecolorallocate($image, 0x00, 0x00, 0x50); |
21:10 | Michu | $red = imagecolorallocate($image, 0xFF, 0x00, 0x00); |
21:10 | Michu | $darkred = imagecolorallocate($image, 0x90, 0x00, 0x00); |
21:10 | Michu | for ($i = 60; $i > 50; $i--) { |
21:10 | Michu | imagefilledarc($image, 50, $i, 100, 50, 0, 45, $darknavy, IMG_ARC_PIE); |
21:10 | Michu | imagefilledarc($image, 50, $i, 100, 50, 45, 75 , $darkgray, IMG_ARC_PIE); |
21:10 | Michu | imagefilledarc($image, 50, $i, 100, 50, 75, 360 , $darkred, IMG_ARC_PIE); |
21:10 | Michu | } |
21:10 | Michu | imagefilledarc($image, 50, 50, 100, 50, 0, 45, $navy, IMG_ARC_PIE); |
21:10 | Michu | imagefilledarc($image, 50, 50, 100, 50, 45, 75 , $gray, IMG_ARC_PIE); |
21:10 | Michu | imagefilledarc($image, 50, 50, 100, 50, 75, 360 , $red, IMG_ARC_PIE); |
21:10 | Michu | header('Content-type: image/png'); |
21:11 | Michu | imagepng($image); |
21:11 | Michu | imagedestroy($image); |
21:11 | Michu | ?> |
21:11 | Michu | na początku jest tworzony obraz i jedo zasoby |
21:11 | Michu | czyli jakie proporcje maja miec czesci kola |
21:12 | Michu | wszystko dzieki funkcji imagefilledarc |
21:12 | Michu | która przy dobrym tworzeniu stworzyc imitacje 3d |
21:12 | Michu | jej parametry to |
21:13 | Michu | 1 parametr to zmienna $obraz zawierajaca obraz |
21:13 | Michu | 2 parametr to |
21:13 | Michu | położenie x |
21:13 | Michu | 3 parametr to położenie y |
21:13 | Michu | 4 parametr to długość |
21:13 | Michu | 5 to szerokość |
21:14 | Michu | 6 za jakim kącie ma zaczać |
21:14 | Michu | a 7 na jakim skończyć |
21:15 | Michu | teraz mam do was pytanie czy chciely byście bym omówił tokeny |
21:15 | Michu | jak je robic |
21:16 | Michu | czyli milczenie juz starozytni wiedzieli ze oznacza to zgode |
21:16 | Michu | to tak |
21:16 | Michu | token ma służyć by zapobiec uzywaniu botów na stronie |
21:16 | Michu | jednak coraz częściej programiści "przesadaja" i token jest trudny do odczytania dla ludzi |
21:17 | Michu | a jak sie źle wpisze |
21:17 | Michu | to człowiek się tylko denerwuje |
21:17 | Michu | więc jak zrobić dobry token |
21:17 | Michu | ? |
21:17 | Michu | zasada jest taka |
21:17 | Michu | boty analizuja pixel po pixelu |
21:17 | Michu | wiec zmylenie ich różnymi kolorami pomaga |
21:18 | Michu | czyli każda litera inny kolor |
21:18 | Michu | tło roznokolorowe |
21:18 | Michu | tylko kontrastyjace z literami troche |
21:18 | Michu | by sie nie zlewały |
21:19 | Michu | losowe pasiki i zakrzywienia przesadza |
21:19 | Michu | o wygraniej człowieka z komputeram |
21:19 | Michu | czyli jak widać biblioteka GD jest prosta jak budowa czołgu T55 |
21:19 | Michu | taki zarcik |
21:19 | Michu | czy cos przegapiłęm jakies pytania |
21:19 | lidia | chyba nie |
21:20 | Michu | to dobrze |
21:20 | Michu | tak gd uzywamy przy prezentacjach i innych rzeczach gdy cos ma byc graficzne |
21:20 | JaBoJa | Kazda litera - inny kolor = bot moze sobie na podstawie koloru rozdzielic litery do dalszej obrobki |
21:20 | Michu | dobrym połączeniem było by gd + ajax |
21:21 | Michu | ale ja mówie o każda litera na 3 kolorowa |
21:21 | Michu | pixelami tak 1px czarny 2 zielony i tak na zmiana |
21:21 | JaBoJa | to nic nie da - sprowadzenie obrazu do szarosci jest trywialne |
21:21 | Michu | to troche go zdenerwuje |
21:21 | Michu | to jak wiadomo bot z js sie gryzie |
21:22 | Michu | wystarczy submit daca action="" |
21:22 | Michu | i niech js prowadzi |
21:22 | Michu | a nie action w formularzu |
21:22 | JaBoJa | no i jak ktos wylaczy javascipt to ma problem :P |
21:22 | Michu | bot nie lubi js |
21:23 | JaBoJa | przed mowieniem niedorzecznosci poczytaj: |
21:23 | JaBoJa | http://pornel.net/captcha |
21:23 | Michu | co do tokenów to zawsze losowe paski działały o zakrzywienia |
21:23 | Michu | inne źródła czytałem |
21:23 | JaBoJa | tym co tak naprawde utrudnia sa zakrzywienia |
21:24 | JaBoJa | i linie o grubości liter |
21:24 | Michu | zeby litery miały różna czcionke |
21:24 | Michu | jednak |
21:24 | JaBoJa | też, ale już inne metody są generalnie nieskuteczne |
21:24 | Michu | co dzien nowe pomysł co do bota i tokena |
21:25 | Michu | tak popieram w całej rościagliwaości |
21:25 | JaBoJa | pozatym zawsze zostaje pytanie czy token jest potrzebny? |
21:25 | Michu | jednak z tokenami trzeba uwazac najlepiej sprawdzac przegladarke jezeli bot jest słby |
21:26 | Michu | to sie nie potszywa |
21:26 | Michu | i jezeli grozi nam spam to |
21:26 | Michu | np |
21:26 | Michu | 1 kometarz na 30 min z 1 ip |
21:26 | Michu | zmiana ip zajmie pare sekund botowi czyli wlaczenie proxy |
21:27 | Michu | a jezeli |
21:27 | Michu | proxy jest nie aktywne czasem przy gorszych botach |
21:27 | Michu | nastepuje ich zawieszenie |
21:28 | JaBoJa | Lepiej użyj filtru takiego jak Sblam albo Akismet - nie utrudnisz życia użytkownikom, a spam odfiltruje dość skutecznie. |
21:28 | mTT | potszywa :| ? |
21:28 | Michu | no ale z filtrami jak z botami i z tokenami |
21:28 | Michu | bywa iz wystarczy wpisywac aa |
21:28 | Michu | potem aa1 |
21:28 | Michu | itd. |
21:29 | JaBoJa | ?? |
21:29 | JaBoJa | nie rozumiem |
21:29 | JaBoJa | co masz na myśli? |
21:29 | Michu | jak jest przeciw spamowi system |
21:29 | Michu | to spotkałem sie |
21:29 | Michu | iz wystarczyło wpisywać to samo cały czas a do kazdego wyrazu dołaczayć liczbe |
21:30 | Michu | lub literke inna |
21:30 | JaBoJa | to widać filtr słaby |
21:30 | Michu | a takie cos moze sie skonczyc |
21:30 | Michu | źle dla serwera |
21:30 | JaBoJa | Jeśli użyjesz filtru Bayesowskiego dając nieznanym słowom nieznacznie ujemną wagę to myślę że rozwiąże ci to problem. |
21:31 | Michu | nie ma narazie sprawdzonego systemu którego nie można ominąc zostaje tylko pisać coraz lepsze tokeny i filtry |
21:31 | Michu | tak rozwiaze czesciowo |
21:31 | Michu | a jak bot ma słownik i przeglada google by znalesc zdania |
21:31 | Michu | to juz kazde jest inne |
21:32 | Michu | i nie ma nic wspólnego ze wcześniejszym |
21:32 | JaBoJa | No i co mu te zdania dadzą? |
21:32 | Michu | da bo filtr nie bedze nic widział w poprawnym zdaniu |
21:33 | Michu | a przegladarke ip zawsze mozna zmienic |
21:33 | JaBoJa | No ale takie zdanie nic nie zareklamuje. |
21:33 | Michu | no nic ale moze posłużyc do ataku |
21:33 | JaBoJa | A nie ma sensu tworzyć botów które tylko śmiecą |
21:33 | Michu | zapcha pamiec i co wtedy |
21:33 | JaBoJa | Do ataku może posłużyć ping :P |
21:33 | Michu | moze |
21:34 | Michu | ale czasem lepiej zatakowac strone zeby ona nie działała |
21:34 | Michu | a ping tylko spowolni |
21:34 | JaBoJa | Można nawiązać wiele połączeń http z sieci zombie i ich nie kończyć :P. |
21:34 | Michu | a jak przekroczy lisc mb ustawionych w php to sktypt sie nie wykona |
21:34 | Michu | ta najpierw trzeba miec siec zombie czyli napisac |
21:34 | Michu | program który bedze przejmował PC |
21:35 | Michu | chba iz jest to siec i bawic sie z rozprzestrzenieniem w lanie fałszywych mac |
21:36 | Michu | ale nie ma co o atakach DoS pisac bo temat wykladu inny |
21:36 | Michu | czy jakies jeszcze pytania |
21:36 | JaBoJa | Zresztą, strony dla Pentagonu chyba nie robisz, więc aż takie zabezpieczenia nie są potrzebne. |
21:36 | Michu | hehe |
21:36 | Michu | no nie robie strony la pentadonu |
21:36 | Michu | ale moze ktos tu obecny nie wiem |
21:36 | Michu | moze mu sie to przyda |
21:37 | Michu | to jak nie ma pytan to moge zakończyć wyklad |
21:37 | Michu | to wyklad zakonczony |