19:00 <@dragon> Jedziemy!
19:00 <@dragon> jestem juz na antenie ?
19:00 <@dragon> ok
19:00 <@dragon> Omowimy sposob minpulowania i formatowania tekstu za pomoca funkcji ciagow php
19:01 <@dragon> zrobmy przyklad
19:01 <@dragon> Formularza pocztowego
19:01 <@dragon> mamy tak:
19:01 <@dragon> <?php
19:01 <@dragon> $nazwa=$_POST['nazwa'];
19:02 <@dragon> email=$_POST['email'];
19:02 <@dragon> $email*
19:02 <@dragon> $komentarz=$_POST['komentarz'];
19:03 <@dragon> $adresdo 'mail@com.pl';
19:03 <@dragon> sory
19:03 <@dragon> $adresdo = 'mail@com.pl';
19:03 <@dragon> $temat = 'wiadomosc';
19:05 <@dragon> $zawartosc = 'Imie i nazwisko: '.$nazwa. "\n" 'Adres pocztowy: '.$email. "\n". "Komentarz: \n".$komentarz. "\n";
19:05 <@dragon> mail($adresdo, $temat, $zawartosc, $adresod);
19:06 <@dragon> ?>
19:06 <@dragon> <html>
19:06 <@dragon> <head>
19:06 <@dragon> <title>Wyslanie maila
19:06 <@dragon> </head>
19:06 <@dragon> <body>
19:06 <@dragon> <h1>Wysylanie maila
19:06 <@dragon> <p>mail zostal wyslany


19:07 <@dragon> omowie teraz funkcje, jakie mozna tutaj "wlozyc"
19:07 <@dragon> pierwszym etapem jest usuniecie zbednych spacji, przestrzeni
19:08 <@dragon> chop(), ltrim() i trim()
19:08 <@dragon> uzyje funkcji trim,ktora usuwa przestrzen z poczatku i konca ciagu, po czym zwraca wynik
19:08 <@dragon> $nazwa=trim($nazwa);
19:09 <@dragon> $adres=trim($adres);
19:10 <@dragon> mozliwe jest zastosowanie funkcji ltrim, rtrim
19:10 <@dragon> sa podobne - pobieraja przestrzen z poczatku do konca
19:11 <@dragon> ltrim(); jedynie z poczatku z lewej strony, a rtrim(); z prawej
19:12 <@dragon> jakies pytania ?
19:12 < Michal-> ;p
19:12 < FreeS> hmm
19:12 < Michal-> ale o so hozi?
19:12 < Michal-> ;p
19:13 < FreeS> nie za bardzo wiem co miales na mysli piszac o ltrim i rtrim ;P
19:13 <@dragon> masz tak: _ to sa spacje
19:13 <@dragon> wpisales w formularzu ____mail@com.pl
19:13 <@dragon> ltrim kasuje te spacje
19:13 <@dragon> a rtrim tak samo tylko z prawej strony
19:14 < FreeS> hmm
19:14 < FreeS> a jak masz ___mail@com.pl___
19:14 < FreeS> kasuje z obu stron?
19:14 <@dragon> to uzywasz trim
19:14 <@Karql> to trim
19:14 < FreeS> acha
19:14 <@dragon> tak
19:14 <@Karql> jak sama nazwa mowi
19:14 <@dragon> tak
19:14 <@Karql> ltrim l == left
19:14 < driud> bo l- left r-right
19:14 < driud> a trim to ogolnie
19:14 <@dragon> dokladnie
19:14 < FreeS> a jak masz ___mail@ .com.pl? :P
19:14 < FreeS> to tylko trimem?
19:14 < driud> tak
19:14 <@dragon> tak
19:14 < FreeS> oks
19:14 < driud> bo wszystko pod uwage
19:14 < driud> bierze
19:15 < driud> a l i t
19:15 <@dragon> tak
19:15 < driud> to do zadanych stron
19:15 <@Karql> ale imo trim nie usunie ze srodka bialych znakow
19:15 <@dragon> jedziemy dalej z wielkoscia liter w ciagach
19:16 <@dragon> W php mozna zamienic ciag z malych znakow na duze itp
19:16 <@dragon> w tej naszej aplikacji chyba to nie za bardzo gra role
19:16 <@dragon> ale opisze funkcje
19:16 <@dragon> ze zmienna $temat
19:17 <@dragon> strtoupper(); zamienia ciag na duze litery
19:17 <@dragon> mamy zmienna:
19:17 <@dragon> $tekst = 'prowadze wyklad';
19:17 <@dragon> przyklad: strtoupper($tekst)
19:18 <@dragon> wyswietli: PROWADZE WYKLAD
19:18 <@dragon> wyswietli po funkcji echo *, teraz bedzie mialo wartosc
19:19 <@dragon> kolejna funkcja: strtolower() zamienia ciag na male litery, przyklad strtolower($tekst)
19:19 <@dragon> wartosc: prowadze wyklad
19:19 <@dragon> kolejna funkcja: ucfirst()
19:19 <@dragon> zamienia pierwsza litere na duza,
19:19 <@dragon> tylko, jezeli jest ona litera, a nie cyfra
19:20 <@dragon> przyklad:
19:20 <@dragon> ucfirst($tekst)
19:20 <@dragon> wartosc: Prowadze wyklad
19:20 <@dragon> ucwords() zamienia na wielka litere pierwsza 'litere' kazdego wyrazu
19:20 <@dragon> czyli
19:20 <@dragon> ucwords($tekst)
19:20 <@dragon> Prowadze Wyklad
19:21 <@dragon> *uwaga zamienia, jezeli jest litera alfabetu
19:21 <@dragon> jakies pytania ?
19:21 < FreeS> ne :P
19:21 <@dragon> lecimy dalej
19:22 <@dragon> teraz zastosujemy funkcje addslashes() i stripslashes()
19:23 <@dragon> Kto zna php wie, ze
19:24 <@dragon> znak, ktory ma byc wypisanym znakiem, a nie np. zamknieciem cudzyslowu
19:24 <@dragon> nalezy poprzedzic lewym ukosnikiem
19:24 <@dragon> czyli: aby wyswietlic znak \
19:24 <@dragon> nalezy zrobic tak: \\
19:24 <@dragon> aby wyswietlic znak "
19:24 <@dragon> nalezy zobic \"
19:25 <@dragon> zrobimy to ze zmienna naszego formularza $komentarz
19:25 <@dragon> jezeli ktos wpisze znak np. \ lub " caly skrypt moze sie posypac
19:25 <@dragon> php posiada dwie funkcje addslashes() i stripslashes()
19:27 <@dragon> addslashes() po chlopsku mozna powiedziec przed np. cudzyslowami dodaje automatycznie \
19:27 <@dragon> czyli
19:28 <@dragon> mamy $komentarz = addslashes($komentarz);
19:28 <@dragon> przykladowo $komentarz ma wartosc "jestesmy zadowoleni"
19:29 <@dragon> po zastosowaniu addslashes wychodzi: \"Jestesmy zadowoleni\"
19:30 <@dragon> jednak aby
19:31 <@dragon> usunac niepotrzebne znaki nalezy uzyc funkcji stripslashes()
19:31 <@dragon> wynikiem bedzie "jestesmy zadowoleni"
19:32 <@dragon> posluze sie przykladem
19:32 <@dragon> <?php
19:32 <@dragon> // nawiazujmy połaczenie z baza danych
19:32 <@dragon> mysql_connect('localhost', 'root', '');
19:32 <@dragon> mysql_select_db('baza');
19:32 <@dragon> // pobieramy wszystkie rekordy z `username` równym
19:32 <@dragon> // takie jakie podał użytkownik w formularzu
19:32 <@dragon> $result = mysql_query("SELECT id FROM users WHERE username = '".$_GET['nick']."'");
19:32 <@dragon> // jesli liczba pobranych rekordów jest wieksza od 0
19:32 <@dragon> // oznacza to, że odwiedzajacy podał poprawny username
19:32 <@dragon> // i zostaje zalogowany
19:32 <@dragon> if(mysql_num_rows($result) > 0)
19:33 <@dragon> echo 'jestes zalogowany';
19:33 <@dragon> else
19:33 <@dragon> echo 'nie poprawny username';
19:33 <@dragon> ?>
19:33 <@dragon> Jest to przykład prostego logowania. Zauważ, że nie użylismy tu funkcji addslashes() na zmiennej pochodzacej od użytkownika $_GET['nick']. Co sie stanie jesli odwołamy sie do skryptu w ten sposób:
19:33 <@dragon> http://www.strona.com/skrypt.php?nick='%20OR%20username%20!=%20'
19:33 <@dragon> Użytkownik otrzyma nie autoryzowany dostep do czesci strony
19:33 <@dragon> poprawny skrypt:
19:33 <@dragon> <?php
19:33 <@dragon> // nawiazujmy połaczenie z baza danych
19:33 <@dragon> mysql_connect('localhost', 'root', '');
19:33 <@dragon> mysql_select_db('baza');
19:33 <@dragon> // pobieramy wszystkie rekordy z `username` równym takie
19:33 <@dragon> // jakie podał użytkownik w formularzu
19:33 <@dragon> $nick = addslashes($_GET['nick']);
19:33 <@dragon> $result = mysql_query("SELECT id FROM users WHERE username = '$nick'");
19:33 <@dragon> // jesli liczba pobranych rekordów jest wieksza od 0
19:33 <@dragon> // oznacza to, że odwiedzajacy podał poprawny username
19:33 <@dragon> // i zostaje zalogowany
19:33 <@dragon> if(mysql_num_rows($result) > 0)
19:33 <@dragon> echo 'jestes zalogowany';
19:33 <@dragon> else
19:33 <@dragon> echo 'nie poprawny username';
19:33 <@dragon> ?>
19:34 <@dragon> pytania ?
19:34 <@dragon> krotko:
19:34 <@Karql> nie moglbys tych przykladow wklejac gdzies a nie na kanal?
19:34 < driud> :D
19:34 <@dragon> ok
19:34 < ant_> Karql: to jest logowane
19:34 < ant_> nie
19:34 < ant_> dragon: wrzucaj tutaj zeby bylo w logach wszystko
19:34 <@Karql> tak ale raz ze wolno sie wkleja a dwa zle sie czyta
19:34 <@dragon> no
19:35 <@dragon> mowiac krotko
19:35 <@dragon> stripslashes(); wstawiamy tam, gdzie chcemy wyswietlic zawartosc
19:35 <@dragon> a addslashes(); np. do bazy mysql lub logowania tak jak wyzej
19:35 <@dragon> posluzylem sie przykladem
19:35 <@dragon> http://www.strefaphp.net/artykul32.html
19:35 <@dragon> teraz pytanka
19:36 <@Karql> tak a jak masz ustawione magic_quote czy jak to sie tam zwalo
19:36 <@Karql> i dodasz addslashes
19:37 <@dragon> magic_qotes_gpc
19:37 <@dragon> automatycznie dodaje
19:37 <@Karql> no to ja wiem
19:37 <@dragon> w wersjach PHP5 i wyzszych
19:37 <@dragon> przed atakami SQL Injection
19:37 <@Karql> i jak dodasz pozniej jeszcze raz addslashes
19:37 <@Karql> to bedzie kupa
19:38 <@dragon> tak, trzeba skonfigurowac ja odpowiednio w php.ini
19:38 <@dragon> dalej
19:38 <@dragon> Teraz bedziemy sprawdzac ciagi
19:39 <@dragon> funkcja: strlen()
19:39 <@Karql> tak ale z php.ini mozesz sie bawic na localu
19:39 <@Karql> a jak masz gdzies na serwie?
19:39 <@dragon> phpinfo();
19:39 <@Karql> powiedz im o tym sprawdzaniu, bo komus wywala strone i beda mieli do ciebie wonty:)
19:39 <@dragon> dobra
19:39 <@Karql> dobra nie przeszkadzamX)
19:39 <@dragon> powracajac
19:40 <@dragon> nalezy sprawdzic czy magic_qUotes_gpc jest wlaczona
19:40 <@dragon> funkcja phpinfo();
19:40 <@dragon> dalej:
19:41 <@dragon> funkcja strlen(); sprawdza dlugosc ciagu
19:41 <@dragon> jezeli zrobimy np. strlen('ant');
19:41 <@dragon> zwroci dlugosc - w tym wypadku 3
19:41 <@dragon> mozemy uzyc go w naszym wyslaniu maila
19:42 <@dragon> mail musi byc wiekszy niz 4 znaki:
19:42 <@dragon> if (strlen($adresdo)<4)
19:42 <@dragon> {
19:43 <@dragon> echo 'Adres ma mniej niz 4 znaki';
19:43 <@dragon> exit;
19:43 <@dragon> }
19:43 <@dragon> ps. funkcja exit zatrzymuje wykonywanie skryptu
19:43 <@dragon> nastepna funkcja
19:43 <@dragon> strstr()
19:44 <@dragon> Aby znalezc znak, ciag wewnatrz innego ciagu mozna uzyc funkcji: strstr(), strchr(), stristr(), strrchr();
19:45 <@dragon> funkcji strstr mozna uzyc w naszym formularzu
19:45 <@dragon> sprawdzi on poprawnosc maila
19:45 <@dragon> przyklad:
19:46 <@dragon> prrrr
19:46 <@dragon> strstr i strchr sa funkcjami podobnymi
19:46 <@dragon> tyle,ze strchr() wyszukuje znaku
19:46 <@dragon> mozna uzyc w naszym skrypcie obydwu funkcji
19:46 <@dragon> ja uzyje strstr
19:47 <@dragon> if (strstr($adresdo, '@');
19:47 <@dragon> {
19:48 <@dragon> echo 'mail poprawnie wyslany';
19:48 <@dragon> }
19:48 <@dragon> else
19:48 <@dragon> {
19:48 <@dragon> echo 'Mail niepoprawnie sformuowany';
19:48 <@dragon> }
19:48 <@dragon> pytania ?
19:49 <@dragon> brak :(
19:50 <@dragon> funkcja stristr() jest praktycznie taka sama jak strstr(), ale nie zwraca uwagi na wielkosc liter
19:51 <@dragon> zajmiemy sie teraz funkcja explode()
19:51 <@dragon> rozbija ona ciag na strony
19:51 <@dragon> mamy mail:
19:51 <@dragon> mail@com.pl
19:51 <@dragon> i aby sprawdzic z jakiej mail jest domeny
19:51 <@dragon> robimy:
19:51 <@dragon> $eemail = explode('@', $adresod);
19:52 <@dragon> rozdziela na dwie czesci:
19:52 <@dragon> i przekazuje je tablicy
19:52 <@dragon> tablica
19:52 <@dragon> $eemail[0] przechowuje nazwe uzytkownika
19:52 <@dragon> a $eemail[1] domene
19:53 <@dragon> pytania do tej funkcji ?
19:53 < driud> hm
19:53 < FreeS> pytan nie ma bo to stosunkowo proste jest :)
19:53 <@dragon> (:
19:54 < driud> 0 to lewa 1 prawa
19:54 < driud> koniec :)
19:54 < FreeS> ta
19:54 <@dragon> no
19:54 < FreeS> wlasnie
19:54 < driud> cale objasnienie:)
19:54 < driud> a
19:54 < driud> mam pytanie
19:54 < driud> sa sie na 3 podzielic?
19:54 < driud> da*
19:54 <@dragon> musisz zajrzec do manuala
19:54 < FreeS> ;f
19:55 < driud> np jak jest domena cos.domena.com
19:55 <@dragon> ja nie uwzglednilem tego w tym wykladzie
19:55 <@dragon> jedziemy dalej ?
19:55 < driud> ok :)
19:56 <@dragon> Zajmiemy sie funkcja str_replace()
19:56 <@dragon> aby tekst nie obrazal kogos
19:56 <@dragon> funkcja ta zamienia ciag
19:56 <@dragon> przykladowo slowo swinia jest zamienione na #$#!$
19:56 <@dragon> a teraz przyklad:
19:57 <@dragon> w tablicy $cenzura mamy slowa niecenzuralne
19:57 <@dragon> wykonujemy:
19:57 <@dragon> $komentarz = str_replace($cenzura, '%!(%^&^', $komentarz);
19:58 <@dragon> prototyp tej funkcji to:
19:58 <@dragon> mixed str_replace(mixed slowo, mixed nowe_slowo, mixed tekst [, int &ile]);
19:59 <@dragon> pytania ?
19:59 < driud> brak
19:59 < driud> tez proste :D
19:59 <@dragon> omowie tez podstawy wyrazen regularnych
20:00 <@dragon> gdyz jest to dosc rozwiniety temat
20:00 <@dragon> php rozpoznaje dwa typy skladni wyrazen regularnych: posix i perl.
20:01 <@dragon> do wyrazenia
20:02 <@dragon> .lot pasuje do plot, mlod, klot itp
20:04 <@dragon> musimy zakonczyc wyklad, gdyz tlumaczenie wyrazen regularnych
20:04 <@dragon> zajelo by mase czasu
20:04 <@dragon> opisalem przynajmniej funkcje ciagow
20:04 <@dragon> zapraszam do czytania podrecznika php
20:05 <@dragon> a co do wyrazen regularnych to moze innym razem, proponuje lekture:
20:05 <@dragon> http://www.gajdaw.pl/php/wyrreg.html
20:05 <@dragon> jakies pytania ?
20:05 < driud> lubisz rybki? :)
20:05 <@dragon> -[[[KoNiEc]]]-