PHP Solutions 3 2005 PL

download PHP Solutions 3 2005 PL

of 79

description

Search Engine Optimization.Integracja OpenOffice i PHP - Efektowne raporty na WWW.Flash w PHP - Generowanie animacji z wykorzystaniem biblioteki Ming.PHP Zend Certification - Program certyfikacyjny dla deweloperów PHP.SQLite, MySQL, PostgreSQL i Firebird - Testujemy najpopularniejsze bazy danych Open SOurce.Zaawansowane interfejsy użytkownika w XUL - Aplikacje webowe z wykorzystaniem SOAP i XUL.

Transcript of PHP Solutions 3 2005 PL

Spis treci

PHP6?okd zmierza PHP? W samym jzyku nie pozostao ju chyba wiele do zrobienia. Mamy przecie w peni obiektowy PHP5. Za wok niego mas rozszerze, bibliotek i frameworkw. Trudno bez tych ostatnich wyobrazi sobie wydajne i solidne tworzenie profesjonalnego oprogramowania przez deweloperw. Wasny framework? Prawdopodobnie, zupenie niewiadomie, stworzyo ju go wielu z nas (mogcych nosi teraz miano profesjonalistw). Nie tak atwo wybra jednak dobry framework czy bibliotek nie posiadajc duego dowiadczenia. Najlepiej gdyby powstao pene, zintegrowane rodowisko zawierajce w sobie pewne rozszerzenia niezbdne do stworzenia waciwie kadej aplikacji. Z drugiej strony, takie kombajny mog nie spodoba si tym, ktrzy ceni sobie moliwo budowy i konfiguracji indywidualnego rodowiska pracy. Tak czy owak, miao mona zaryzykowa stwierdzenie, e PHP6 bdzie dotyczyo tego, co powstaje wok jzyka, a nie samego PHP. Tworzenie stron WWW to jedno, a ich promowanie to zupenie inna bajka. Pomoe nam w tym PHP. W aktualnym numerze skupilimy si na pozycjonowaniu witryn w wyszukiwarkach internetowych i specjalnie dla Was stworzylimy kilka bardzo przydatnych narzdzi. O tym, jak je zbudowa, przeczytacie w artykule pt. Search Engine Optimization. Jeli natomiast wolicie kompletne, komercyjne oprogramowanie, polecamy artyku pt. AddWeb 7 optymalizacja i promocja stron WWW. Program ten odwali za Was ca czarn robot. W numerze pokaemy te moliwoci integracji OpenOfficea i PHP. Jej rezultatem mog by bardzo efektowne raporty na WWW, ktre pod wzgldem wizualnym bij na gow PHPlota. Przetestowalimy rwnie najczciej uywane w PHP bazy danych Open Source: MySQL, SQLite, PostgreSQL i Firebird. O tym, ktra z nich jest najlepsza i ktr wybra, powiemy w artykule pt. Test baz danych Open Source. Czy, nie tak znowu nowa, technologia XUL znajdzie zastosowanie w tworzeniu aplikacji PHP? Czy zaawansowane interfejsy graficzne w XUL stan si standardem? Wszystkim spragnionym odpowiedzi na te pytania polecamy artyku pt. XUL-owy interfejs dla PHP. Znudzeni? Jeli tak, proponujemy troch grafiki i animacji. Okazuje si, e aparat cyfrowy i PHP maj wiele wsplnego. W artykule o wykorzystaniu biblioteki phpExifRW przeczytacie, jak manipulowa danymi EXIF zapisywanymi w fotografiach przez nasze ulubione cyfrwki. Z pewnoci spodobaj si Wam rwnie animacje Flasha w PHP. W artykule o bibliotece Ming pokaemy, jak generowa banery i pokazy slajdw. Na zakoczenie polecamy tekst o programie certyfikacyjnym Zenda. Certyfikat ma powiadcza nasze umiejtnoci z zakresu PHP i zwiksza szanse w poszukiwaniu pracy. Zapraszamy te do subskrypcji naszego newslettera. Znajdziecie w nim informacje o nowociach w magazynie, promocjach czy interesujcych wydarzeniach. Zapraszam do lektury, Dariusz Pawowski, Redaktor prowadzcy

D

TESTYAddWeb 7 optymalizacja i promocja stron WWW 14

Przemysaw Bogusz Program AddWeb to profesjonalne narzdzie do pozycjonowania stron WWW w wyszukiwarkach internetowych. Umoliwia ich analiz, optymalizacj i promowanie. Pokaemy, jak sprawuje si w tych zastosowaniach.

Maguma Workbench 2.2.0 dobre IDE dla PHP

Krzysztof Sobolewski Maguma 2.2.0 to profesjonalne IDE dla PHP. Umoliwia wygodn edycj i debugowanie kodu oraz tworzenie i zarzdzanie projektami. W tecie uwypuklimy najmocniejsze strony tego rodowiska.

16

BIBLIOTEKACute PHP Library biblioteka dla kadego dubacza 18

Alexander Meindl Cute PHP to biblioteka zawierajca gotowe do wykorzystania, czsto uywane w codziennej pracy funkcje. Jest projektem opensourcowym, tworzonym i aktualizowanym przez wielu programistw.

NARZDZIAOpenOffice i PHP, czyli efektowne raporty na WWW 22

Filip Dreger Pakietu biurowego OpenOffice nie trzeba chyba nikomu poleca. Jedn z jego zalet jest atwa integracja z PHP. W artykule pokaemy, jak tworzy efektowne raporty na WWW.

Test baz danych Open Source 28Piotr Foremniak, Piotr Szarwas MySQL, PostgreSQL, SQLite, Firebird... Kada z tych baz danych ma swoje wady i zalety, ale ktra z nich jest najlepsza? Niech poka to testy!

www.phpsolmag.org

POCZTKISearch Engine OptimizationPawe Grzesiak, Bogusaw Faja Dobra witryna internetowa to nie wszystko trzeba j jeszcze wypromowa, aby bya atwa do odnalezienia w wyszukiwarkach i miaa wysok ogldalno. W tym celu stworzymy w PHP szereg narzdzi do pozycjonowania stron.

34

Podzikowania dla betatesterw:Krzysztof Trynkiewicz (PL), klimmass (PL), ukasz Witczak (PL), Grzegorz Hibner (PL), Andrzej Trafalski (PL), Marek Magry (PL), michal (PL), Marcin Gil (PL), zYm3n (PL), Daniel Stokowiec (PL), Augustin Pascual (FR), Jrmie Patonnier (FR), David Pinson (FR), nono aka murdock (FR), Tobias Rohrle (FR)

2

www.phpsolmag.org

PHP Solutions Nr 3/2005

Spis treci

POCZTKIFlash w PHP, czyli Ming w akcji 44Przemysaw Bogusz Biblioteka Ming umoliwia tworzenie profesjonalnych animacji Flasha w PHP. Zademonstrujemy jej moliwoci na przykadzie animowanego banera i pokazu slajdw.

KASA DLA WEBMASTERAGoogle AdSense czyli kasa dla Webmastera 72Bogusaw Faja wietna wiadomo dla wszystkich wacicieli serwisw WWW: firma Google uruchomia wasny program partnerski. Kady, kto do niego przystpi i bdzie zamieszcza na swoich stronach reklamy wskazywane przez potentata w dziedzinie wyszukiwarek, moe zacz zarabia. W artykule przybliymy zasady programu partnerskiego Google i pokaemy, komu si to opaci.

PROJEKTYTworzymy galeri zdj z uyciem EXIF 52

Wojciech Jukowski Kade zdjcie cyfrowe zawiera mnstwo przydatnych informacji. Dziki bibliotekom takim, jak phpExifRW czy JPEG moemy nimi manipulowa uywajc PHP. W artykule stworzymy galeri zdj z wykorzystaniem informacji EXIF.

VARIAAktualnoci Opis CD 4 8

TECHNIKIXUL-owy interfejs dla PHPPawe Kaduczka XUL to jzyk, ktry suy do tworzenia graficznych interfejsw uytkownika. Jest niezaleny od platformy systemowej i atwy we wdroeniu. Udowodnimy, jak atwo napisa w nim frontend dla aplikacji webowej w PHP.

Katalog firm Promocja stron WWW 75 58

PHP Solutions jest wydawany przez Software-Wydawnictwo Sp. z o.o. Redaktor prowadzcy: Dariusz Pawowski [email protected] Redaktor: Krzysztof Sobolewski [email protected] Opracowanie CD: Krzysztof Sobolewski, Dariusz Pawowski Stali wsppracownicy: Pawe Kozowski [email protected] Kierownik produkcji: Marta Kurpiewska [email protected] Projekt okadki: Agnieszka Marchocka Skad i amanie: Agnieszka Zadrona [email protected] Dzia reklamy: [email protected] Prenumerata: Marzena Dmowska [email protected] Adres korespondencyjny: Software-Wydawnictwo Sp. z o.o., ul. Lewartowskiego 6, 00-190 Warszawa, Polska Tel. +48 22 860 18 81, Fax +48 22 860 17 71 www.phpsolmag.org [email protected] Doczon do magazynu pyt CD przetestowano programem AntiVirenKit firmy G DATA Software Sp. z o.o. Redakcja dokada wszelkich stara, by publikowane w pimie i na towarzyszcych mu nonikach informacje i programy byy poprawne, jednake nie bierze odpowiedzialnoci za efekty wykorzystania ich; nie gwarantuje take poprawnego dziaania programw shareware, freeware i public domain. Uszkodzone podczas wysyki pyty wymienia redakcja. Wszystkie znaki firmowe zawarte w pimie s wasnoci odpowiednich firm i zostay uyte wycznie w celach informacyjnych. Redakcja uywa systemu automatycznego skadu Do tworzenia wykresw i diagramw wykorzystano program firmy Osoby zainteresowane wspprac prosimy o kontakt: [email protected] Druk: Stella Maris Wysoko nakadu obejmuje rwnie dodruki. Redakcja nie udziela pomocy technicznej w instalowaniu i uytkowaniu programw zamieszczonych na pytach CD-ROM dostarczonych razem z pismem. Sprzeda aktualnych lub archiwalnych numerw pisma po innej cenie ni wydrukowana na okadce bez zgody wydawcy jest dziaaniem na jego szkod i skutkuje odpowiedzialnoci sdow. Pismo ukazuje si w nastpujcych wersjach jzykowych: polskiej , francuskiej , niemieckiej , hiszpaskiej

FAQFAQ 03 odpowiedzi na czsto zadawane pytania 68

ukasz Lach Cig dalszy odpowiedzi na czsto zadawane pytania. Opowiemy midzy innymi o tym, jak generowa atwe do zapamitania hasa czy chroni adres email publikowany na stronie przed spamerami.

.PROZend PHP CertificationPawe Kozowski Zend Technologies, Inc., uruchomi program certyfikacji dla programistw PHP. Zdobycie certyfikatu ma powiadcza bieg znajomo jzyka PHP i znaczco zwikszy szanse na znalezienie pracy. Jak przygotowa si do egzaminu i jakich formalnoci naley wczeniej dopeni? Na te oraz inne pytania odpowie Wam w swoim artykule Pawe.

70

oraz woskiej

.

PHP Solutions Nr 3/2005

www.phpsolmag.org

3

AktualnociPowstao PHP Security Consortium

Nowoci w PostgreSQL 8.0

W styczniu zaoono PHP Security Consortium (PHPSC). Jego celem jest promowanie i upowszechnianie bezpieczestwa w programowaniu w PHP. Organizacja dziaa publikujc artykuy na temat bezpieczestwa PHP, sporzdzajc dokumentacje, opracowujc standardy i tworzc narzdzia. Bardzo wan czci dziaalnoci organizacji s projekty zwizane z bezpieczestwem. Projektem flagowym jest utworzenie i ciga aktualizacja Przewodnika po bezpieczeswie PHP (ang. PHP Security Guide). Do konsorcjum naley wielu znawcw jzyka PHP z caego wiata. Koniecznie naley odwiedzi ich witryn. http://phpsec.org/

P

Notepad++ 2.7

Notepad++ popularny opensourcowy edytor programistyczny dla wielu jzykw (m.in. PHP) doczeka si wersji 2.7. Twrcy poprawili w niej wiele bugw (m.in. problem z uyciem wyrae regularnych do wyszukiwania i zastpowania znakw). Dodano te now funkcjonalno, w tym bardzo przydatn funkcj autouzupeniania kodu dla jzykw programowania zdefiniowanych przez uytkownika czyni to edytor Notepad++ jeszcze bardziej uniwersalnym. Na szczeglne uznanie zasuguje wbudowanie uatwiajcej i skracajcej prac programisty obsugi makr. Tak samo jak w wielu innych edytorach, w Notepad++ bdzie wic mona zapisa czsto wykonywane czynnoci. Zostan one wykonane automatycznie po uruchomieniu makra. Podsumowujc: Notepad++ staje si coraz lepszym edytorem. http://notepad-plus.sourceforge.net/

ojawia si wersja 8.0 opensourcowego systemu bazodanowego PostgreSQL. Zawiera ona sporo zmian. Najwaniejsz z nich jest przygotowanie wersji dziaajcej pod Windows i niewymagajcej instalacji rodowiska Cygwin. Dotyczy to tylko Windows z serii NT (XP, 2000, 2003). Nowoci obejm rwnie dziedzin transakcji: wprowadzono savepoints, ktre pozwalaj na przerwanie wybranych czci danej transakcji bez wpywu na jej pozostae fragmenty. Inn zmian jest poprawienie wydajnoci, w tym zarzdzania buforem (ang. buffer management) oraz dziaania zasoboernych instrukcji CHECKPOINT i VACUUM. W wersji 8.0 maj one znacznie mniejszy wpyw na obcienie systemu ni dawniej. Rozszerzeniu ulegy take moliwoci modyfikowania tabel: przy uyciu ALTER TABLE moemy teraz zmienia rwnie typ pola danych. Z nowej funkcjonalnoci PostgreSQLa zadowoleni powinni by rwnie administratorzy. Twrcy tego systemu dodali bowie moliwo cigego bekapowania da-

nych, celem ich byskawicznego odzyskania w razie awarii (ang. Point-in-Time Recovery). Inn nowoci s tablespaces. Pozwalaj one na dowolnie okrelanie lokalizacji plikw, w ktrych przechowywane s dane i struktury baz. Warta uwagi jest te implementacja obsugi plikw CSV przez komend COPY. Mona zapisywa do nich dane z tabel i vice versa. Zmiany te mog zachci do Postgresa tych, ktrzy jeszcze si wahaj a w szczeglnoci osoby pracujce pod systemem Windows. Licencja: BSD http://www.postgresql.org

O'Reilly Open Source Convention

RedBLoG

W dniach od 1 do 5 sierpnia 2005 odbdzie si konferencja powicona tematyce opensourcowej. Zostanie ona zorganizowana przez wydawnictwo O'Reilly w Portland (Oregon, USA). Tematyka przewidziana na konferencj jest bardzo szeroka. Zacznijmy od PHP. Poruszone zostan sprawy zwizane z PHP5, m.in.: nowe rozwizania, migracja ze starszych wersji i bezpieczestwo. Zaprezentowane bd rwnie case studies i zalecane praktyki programistyczne w PHP5. Wielu PHP-owcw zainteresuje rwnie tematyka pokrewna: bazy danych (m.in. MySQL i PostgreSQL), Apache (nowa wersja 2.0), XML (tworzenie dokumentw, najlepsze praktyki programistyczne), bezpieczestwo (w tym zwalczanie spamu i wirusw) i podkrcanie wydajnoci. Nie zabraknie te tematyki linuksowej, m.in. zarzdzania, bezpieczestwa i konfigurowania tego systemu. http://conferences.oreillynet.com/os2005/

R

Zend Studio 4 Beta

Pojawia si nowa wersja synnego pakietu Zend Studio, sucego do tworzenia aplikacji w PHP. Zostao w niej poczynionych kilka zmian. Programista moe teraz korzysta z wycinkw kodu (ang. code snippets), co przyspiesza i uatwia prac. Wbudowano te funkcje pozwalajce na czenie si z baz danych. Wrd obsugiwanych baz s: MySQL, PostgreSQL, SQLite czy Oracle. Zend Studio 4 wsppracuje rwnie z PHPDocumentorem, co umoliwia generowanie dokumentacji na podstawie opisw znajdujcych si wewntrz skryptw. Z mniejszych, ale rwnie uytecznych zmian mona wspomnie o podwietlaniu skadni CSS-a i XML-a. http://www.zend.com/studio/beta/

edBLoG to prosty, ale wydajny system blogw dla pojedynczego uytkownika. Umoliwia podzia blogw na kategorie. Po uruchomieniu, widzimy czytelnie sporzdzon stron gwn. S na niej: teksty (posty) zamieszczone przez autora, lista kategorii, kalendarz i link do archiwum. Zacznijmy od postw. Moemy je komentowa, a bdc administratorem rwnie edytowa lub kasowa. Klikajc na nazw kategorii zobaczymy wszystkie teksty do niej nalece, a na przycisk All wszystkie posty w ogle. Pozwalajc na tematyczny podzia tekstw (np. Muzyka, Turystyka), kategorie s du zalet RedBLoGa. Moemy te przeglda archiwum, a klikajc na kalendarz zobaczymy posty z wybran dat. Upodabnia to REdBLoGa do systemw newsowych, stosowanych na witrynach informacyjnych. Dodawanie nowych tekstw jest bardzo proste. Wchodzimy na zakadk Admin->Blog->Posting, wybieramy kategori, wprowadzamy tytu i moemy zacz pisa. Podczas tworzenia zawartoci, RedBLoG pozwala nam korzysta z emotikonek oraz bbkodu (ang. bbcode), ktry suy do prostego formatowania tekstu. Klikajc na Categories w tej

samej zakadce moemy zarzdza kategoriami. Pod zakadk Admin znajduj si wszystkie opcje konfiguracyjne RedBLoGa. Ustawiamy tu m.in. jzyk interfejsu (m.in: angielski, niemiecki, hiszpaski i woski) i szablon graficzny. RedBLoG korzysta rwnie z mechanizmu wtyczek. Do archiwum twrcy zaczyli dwie z nich: Download, czyli repozytorium plikw i Drawing galeria zdj. Zarwno pliki, jak i zdjcia rwnie moemy dzieli na kategorie. RedBLoG to wietna propozycja dla kogo, kto potrzebuje lekkiego bloga na swoj stron domow. Licencja: GNU GPL http://redblog.sourceforge.net

4

www.phpsolmag.org

PHP Solutions Nr 3/2005

AktualnociSitePoint

p

hp.net i google.com to dwa chyba najczciej wpisywane przez programist PHP adresy internetowe. Pod pierwszym z wymienionych linkw znajdziemy podstawowe rdo wiedzy o PHP. Drugi moe zabra nas w fascynujc podr po cyberprzestrzeni. Oba serwisy s szalenie uyteczne, cho maj skrajnie rny charakter. My proponujemy dodanie do spisu Ulubione jeszcze jednej witryny: www.sitepoint.com. Wizyt na tej stronie rozpocznijmy od zamknicia wyskakujcego okienka z reklam ksiek. No, chyba e akurat trafilimy na promocj The PHP Anthology, ktrej autorem jest Hary Fuecks. Tym, ktrzy jeszcze nie kupili, z czystym sumieniem polecamy (recenzja w PHP Solutions nr 3/ 2004). Denerwujcy pop-up to na szczcie jedyna niedogodno, jaka spotka nas po odwiedzeniu serwisu: dalej czekaj na nas same pereki. Zacznijmy od forum. Jak to? Jeszcze jedno forum powicone PHP? Ale nie to prawdziwa spoeczno skupiajca dowiadczonych programistw. Cho to tylko wirtualne zgromadzenie, posiada wszystkie cechy dobrze zorganizowanego i zarzdzanego pastwa. atwo sta si jego obywatelem wystarczy si zarejestrowa. Aby od razu nie popa w konflikt z lokaln policj, warto zastosowa si do obowizujcego kodeksu. Stranicy szybko i sprawnie reaguj na posty nie dotykajce problematyki zaawansowanego programowania w PHP, przenoszc je do rwnolegego wiata Forum PHP. Kolejn niepisan zasad jest wzajemny szacunek i ch zrozumienia uczestnikw dyskusji. Dziki temu wymiana zda dotyczy aspektw merytorycznych, opiera si na rzeczowych argumentach i pozbawiona jest zbdnego adunku negatywnych emocji. W yciu spoecznoci wan rol odgrywa religia, a dwie tutaj dominujce to programowanie obiektowe i proceduralne. Zdecydowanie wiksze poparcie i wpywy zdobywa obz OOP. Dziaaj w nim zgromadzenia wyznawcw wzorcw projektowych (ang. design patterns), lekkich metodyk (XP, Agile Development) i testw jednostkowych (ang. unit tests). Mwic o religii, trudno nie wspomnie o podstawowych przykazaniach i rdach mdroci dla programistw i projektantw PHP. Odnoniki do woluminw gromadzone przez pokolenia zostay zmagazynowane w kolejnym wtku obecnym zawsze

Hotscripts.com ciekawy sajt ze skryptami PHP

na licie: Zaawansowane zasoby dla programistw PHP (ang. Advanced PHP resources). Wrd nich na miano Biblii zasuguje Patterns of Enterprise Application Architecture autorstwa Martina Fowlera. Obraz spoeczestwa nie byby peny, gdyby nie wspomnie o uczonych mdrcach. Na forum SitePoint goci ich wielu, a pod pseudonimami bardzo czsto ukrywaj si ludzie zaangaowani w znane projekty Open Source, autorzy ksiek i artykuw. Podkreli naley, e rzd w postaci administratorw serwisu SitePoint nie krpuje swobodnej wymiany myli. Wrcz przeciwnie dostarcza wielu udogodnie i narzdzi, dziki ktrym nawigacja po forum jest czyst przyjemnoci. Niestety, nawet tak idealnie zorganizowana spoeczno nie ustrzega si pewnych uomnoci. Jaki rodzaj zbiorowej maligny kae organizowa coraz to nowe krucjaty w poszukiwaniu idealnej implementacji MVC. Wystarczy spojrze na wtek To hopefully clear up some MVC confusion... Kolejny problem to powane ryzyko uzalenienia. Nie zdziwmy si, gdy obok naszego pseudonimu zobaczymy liczb wysanych wiadomoci liczon w tysicach. W kocu to naprawd bardzo dobre forum. Sitepoint.com to nie tylko moliwoci uczestniczenia w yciu ciekawej grupy ludzi. Dodatkowo, na spragnionych informacji czekaj te artykuy i blogi. Baza zgromadzonych artykuw nie jest moe zbyt pokana, ale wikszo z nich jest bardzo wartociowa i ciekawie napisana. Osobn sekcj stanowi blog prowadzony przez wspomnianego ju kilkakrotnie Harrego Fuecksa. Na szczcie nie znajdziemy tam bekotliwych wypowiedzi, ale szalenie poyteczne, praktyczne informacje. Autor czsto przyblia nowatorskie, nieznane szerzej projekty i biblioteki, ktre mog nam pomc w codziennej pracy. Kto za nas przetrzsa zasoby Internetu, wyawiajc najcenniejsze pomysy i fragmenty kodu. http://www.sitepoint.com

Witryna Hotscripts.com przypomina nieco znany wikszoci programistw freshmeat (http://freshmeat.net). Jej zadaniem jest gromadzenie i publikowanie informacji o ciekawych projektach tworzonych w rnych jzykach. Znajdziemy tu wic ich opisy, oceny, linki do stron domowych oraz (czsto) archiww do cignicia. Kolekcja projektw PHP-owych jest szczeglnie okazaa. Liczy sobie ponad 9000 pozycji z rnych kategorii! Mamy wic programy partnerskie (okoo 120), blogi, serwisy randkowe, aplikacje multimedialne, rozwizania sieciowe, itd. Oczywicie, podobnie jak na freshmeat.net, znajdziemy tu zarwno projekty naprawd ciekawe (jak np. Coppermine), jak i mniej dopracowane. Serwis udostpnia forum dyskusyjne, a take zaawansowane moliwoci wyszukiwania projektw oraz indywidualnego dostosowania witryny. Pozwala nam rwnie ledzi statystyki zwizane z projektami. Warto odwiedzi ten sajt. http://hotscripts.com

Dziura w phpMyAdmin

W phpMyAdmin znanej, napisanej w PHP aplikacji do zarzdzania MySQLem z okna przegldarki, wykryto bdy umoliwiajce intruzowi dokonanie ataku typu XSS (Cross-Site Scripting). Twrcy programu uznali dziury za powane i zalecaj jego aktualizacj. Do ataku moe by wykorzystany m.in. formularz pytajcy uytkownika o zgod na wykonanie operacji (np. przed kasowaniem bazy danych przez DROP DATABASE) oraz fakt braku oczyszczenia (ang. sanitation) zmiennej zero_rows w pliku read_dump.php oraz komunikatu wysyanego po wystpieniu niektrych bdw (takich jak brak przecinka czy apostrofu) . http://www.phpmyadmin.net

Firma Zend organizuje szkolenia PHP

Twrca silnika PHP firma Zend organizuje kursy jzyka PHP. W ofercie ma m.in. kursy z zakresu podstaw PHP (PHP Essentials), migracji do PHP5 (Migrating to PHP5), pisania bezpiecznego kodu PHP (Securing PHP code), stosowania szablonw Smarty, tworzenia PDF-w przy uyciu PHP czy certyfikatw ze znajomoci tego jzyka. Kursy prowadzone s w trzygodzinnych blokach zwanych sesjami (ang. sessions). W ofercie Zend znajduj si kursy jednosesyjne i wielosesyjne. Ceny nie s niskie: ju kurs jednosesyjny kosztuje $99, podczas gdy dusze od $389 (Migracja do PHP5) do $499 (Podstawy PHP). Warto jednak nadmieni, i w ramach opaty oferowane s rne bonusy: pene wersje programu Zend Studio, bony na przeprowadzane przez Zend egzaminy, itd. Oczywicie, moliwa jest rejestracja przez Internet. http://www.zend.com/store/education/onlinetraining/zend-online-training-courses.php

X AMPP

Pojawia si nowa wersja synnego zestawu XAMPP, skadajcego si m.in. z PHP, Apachea i MySQL-a. Zawiera ona now wersj MySQL-a (4.1.9), Perla (5.8.6) i mod_perl (2.0.0-RC2-XMas), phpMyAdmin 2.6.1 oraz eAccelerator (0.9.2a), ktry zastpuje program Turck MMCache. http://www.apachefriends.org/en/

PHP Solutions Nr 3/2005

www.phpsolmag.org

5

AktualnociSQLite ManagerDla MySQL istnieje phpMyAdmin, dla PostgreSQL-a phpPGAdmin, a coraz popularniejsza ostatnio baza danych SQLite ma swojego SQLite Managera. Jego archiwum ma 192 KB, plus 69 KB dokumentacji! Instaluje si bardzo szybko i bez problemw wystarczy go cign, rozpakowa i przegra do katalogu docelowego i mona uywa! Z wygldu oraz filozofii obsugi przypomina phpMyAdmina. Ma te podobn funkcjonalno mona przeglda, dodawa, kasowa, modyfikowa struktury bazy oraz zgromadzone w niej dane zarwno przy pomocy interfejsu uytkownika, jak i SQL-a. Moliwy jest te eksport danych i sprawdzanie ich integralnoci oraz obsuga wyzwalaczy (ang. triggers), funkcji (ang. functions) i widokw (ang. views). Wikszo zada, np. zakadanie nowej tabeli, da si wykonywa bardzo prosto, wybierajc konkretne wartoci z listy lub wpisujc je do pl formularza. W najnowszej wersji (1.0.4) poprawiono sporo bdw i dodano pen obsug kwerendy SELECT. Jej moliwoci docenili twrcy niektrych gotowych, prostych w instalacji (rwnie pod Windows) pakietw typu PHP+baza danych+serwer WWW, np. wampserver.com. https://sourceforge.net/projects/sqlitemanager/

Nowa wersja Claroline

C

Case Studio bazy danych z diagramw encji

Case Studio to komercyjny, kosztujcy, zalenie od wersji, od $175 do $349 program do modelowania i automatycznego tworzenia baz danych na podstawie diagramw zwizkw encji (ERD, ang. Entity Relationship Diagrams) i diagramw przepywu danych (DFD, ang. Data Flow Diagrams). Wsppracuje z ponad 20 systemami baz danych, w tym rwnie z PostgreSQL-em, MySQL-em i Firebirdem. Pozwala na odtwarzanie struktur (ang. reverse engineering) istniejcych baz danych i automatyczne tworzenie raportw w formacie HTML lub RTF. Dostpna jest rwnie wersja demo. W stosunku do wersji penej, ma ona jedynie dwa ograniczenia: wyczony Version Manager i brak moliwoci nagrania modelu bazy danych, jeli liczba encji przekracza sze. Projektant ma do dyspozycji rwnie szereg narzdzi uatwiajcych modelowanie: system zarzdzania wersjami Version Manager, przegldanie projektu (Model Explorer), Galeri (Gallery) umoliwiajc szybki dostp do czsto uywanych encji i ich grup (i ich szybkie wklejenie do projektu), list zada do zrobienia (ang. TODO) oraz pozwalajcy na zdefiniowanie typw danych Sownik (ang. Dictionary). Program zapowiada si ciekawie, zniechca tylko jego wysoka cena. http://www.casestudio.com/

laroline darmowy, napisany cakowicie w PHP z uyciem bazy danych MySQL, rozpowszechniany na licencji GNU GPL pakiet do nauczania na odlego, doczeka si nowej wersji 1.5.2. Systemu uywaj obecnie setki instytucji, firm i organizacji z 28 krajw (i tyle jest te wersji jzykowych programu!). Jest to ju zestaw w peni profesjonalny. W ostatnich trzech wersjach 1.5.0, 1.5.1 i 1.5.2 twrcy poprawili bdy oraz istotnie rozwinli jego funkcjonalno wykorzystuje on moliwoci PHP5, moe wsppracowa i wymienia dane z innymi systemami elearningowymi (dziki zgodnoci ze standardami SCORM oraz IMS). A co nowego w obsudze dostaje uytkownik? Midzy innymi: edytor WYSIWYG, w ktrym moe na bieco tworzy treci edukacyjne, opcj tworzenia dokumentw HTML online czy moliwo wyznaczania uczniowi cieki nauczania. Dalsze usprawnienia obejmuj korzystanie z programu z punktu widzenia uytkownika indywidualnego lub grupy: zapisywanie si na kurs (dziaa lepiej ni poprzednio), narzdzie obrazujce agend, czyli miesiczny plan wydarze (typu: wykady, egzaminy) obejmujcy wszystkie kursy dla danej osoby, powiadamianie o nowych wypowiedziach

w obserwowanych wtkach na forum, moliwo wysyania komunikatw do uytkownikw lub grup, wewntrzny czat dla kadej grupy uczniw, informowanie uytkownika o nowych kursach od czasu poprzedniego zalogowania si. Warto te wspomnie o tym, co nowego opisywane wersje nios administratorom. Nie musz oni ju korzysta z phpMyAdmina, gdy do zarzdzania bazami danych istnieje specjalny interfejs. Mog te tworzy dowoln ilo kategorii kursw. Podsumowujc: Z wersji na wersj, Claroline jest coraz bardziej funkcjonalny i moe by przydatny osobom, firmom i instytucjom prowadzcym dziaania edukacyjne zarwno na ma, jak i na redni lub du skal. http://www.claroline.net

PHPInteractive, czyli PHP na ywo

C

phpClick 0.6.8

phpClick (czyli Component-based Lightweight Internet-Application Construction Kit) to narzdzie suce do tworzenia aplikacji sieciowych opartych na jzyku PHP, przeznaczone dla osb, ktre nie s programistami bd dopiero zaczynaj przygod z programowaniem a staj w obliczu koniecznoci stworzenia dosy skomplikowanych podsystemw serwisu WWW. phpClick umoliwia midzy innymi szybkie tworzenie formularzy. Narzdzie wymaga PHP w wersji 5.0.1 lub wyszej oraz serwera MySQL 4.0.17+. Aktualnie phpClick znajduje si we wstpnej fazie rozwoju i nie jest zalecany do wykorzystywania w wanych projektach. Warto zapozna si z jego moliwociami, wykorzystujc udostpnion wersj demonstracyjn. http://phpclick.sourceforge.net/index.php

zy jest co, czego brakuje PHP? Owszem shella takiego, jakiego ma np. Python czy niektre implementacje BASIC-a, i ktry umoliwia na jednym ekranie wpisywanie polece i obserwowanie efektw ich dziaania. I to z wykorzystaniem formatowania HTML! Problemowi temu naprzeciw wychodzi program PHPInteractive bardzo prosty, ale uyteczny skrypt, ktry w swoich zasobach powinien mie kady PHP-owiec. Jego archiwum ma ok. 18 KB, wersja rozpakowana troch wicej. Instalacja nie nastrcza absolutnie adnych trudnoci i polega wycznie na przegraniu plikw do odpowiedniego katalogu i jeli korzystamy z Linuksa nadaniu atrybutw wybranym plikom (szczegy w pliku Readme). Obsuga jest bajecznie prosta w okienku tekstowym (okrelonym tagiem HTMLa ) wpisujemy polecenia, po czym wciskamy przycisk Update w polu poniej wida efekt naszych dziaa. Patrzc na ekran, na samej grze widzimy zakadki po zainstalowaniu aplikacji jest

jedna, zatytuowana Untitled. Tak, PHPInteractive umoliwia prac z wieloma skryptami rwnoczenie. Moemy przechodzi midzy okienkami zawierajcymi ich listingi. Zawarto kadego z nich jest rwnie skadowana w pliku. Nad okienkiem wynikw widzimy jeszcze dwie zakadki RAW i HTML. Wybierajc pierwsz, ujrzymy rezultaty naszych operacji w stanie niesformatowanym czyli surowym (ang. raw). Klikajc na drug zobaczymy to samo, ale sformatowane w HTML-u. http://www.hping.org/phpinteractive/

6

www.phpsolmag.org

PHP Solutions Nr 3/2005

Opis CDphpPokerphpPoker jest implementacj pokera i umoliwia zarwno granie na stronach projektu, jak i instalacj na wasnym serwerze. Nie wymaga adnych dodatkowych bibliotek ani programw wystarczy czysty PHP i MySQL! Dodatkowo, oferuje moliwo korzystania z czata. Instalacja gry nie jest zbyt skomplikowana, cho w 100% rczna. Trzeba samemu zaoy baz danych, a nastpnie wyedytowa konfiguracj zawart w pliku z gr. Ustawiamy tam dostp do bazy, liczb graczy, status czata (wczony czy nie), wysoko stawki i pienidzy posiadanych na pocztku gry i wartoci poszczeglnych kart. Na koniec, rcznie kopiujemy pliki w miejsce docelowe. Gra si za to bardzo przyjemnie, gdy aplikacja dziaa szybko i bez zarzutu. Cakiem fajna gra. http://ls.purkki.org/phppoker/

MAHC Advanced HTML CHAT

I

cracklib

Rozszerzenie cracklib umoliwia uywanie w PHP biblioteki o tej samej nazwie. Suy do amania hase a waciwie do sprawdzania, czy uywane w systemie hasa s odporne na atak sownikowy. Taki atak jest moliwy w przypadku hase bdcych sowami (np. nazwami wasnymi). Cracklib sprawdza pozycje znajdujce si w sowniku oraz mutacje nazwy uytkownika. W archiwum rozszerzenia oprcz biblioteki znajduje si przykadowy sownik. http://pecl.php.net/package/crack

phpMyTicket

phpMyTicket to program pomocny przy organizowaniu wszelkiego rodzaju imprez masowych (np. koncertw, sztuk teatralnych, pokazw) odbywajcych si w obiektach z miejscami siedzcymi. Suy do zarzdzania promocj wydarze i sprzeda biletw. Ma cz dla administratora, potencjalnego widza i kasjerki. Administrator moe definiowa nowe imprezy (nazwa, opis, plakat reklamowy, cena za wstp) oraz edytowa lub kasowa istniejce. Program pozwala mu te m.in. na zarzdzanie kasami oraz bramkami biletowymi i definiowanie tekstw wysyanych emailem przy rnych okazjach (np. zamwienie biletu). Potencjalny widz moe przeglda list imprez i czyta ich opisy, zamawia bilety online i drukowa je. Obsuga kasy ma dostp do wszystkich informacji o imprezach (m.in. nazwa, data, obiekt organizacji, ilo wolnych miejsc, kupionych i skasowanych biletw oraz pene informacje o imprezie, ktre mona rozwin). Na stronach projektu znajdziemy kilka obszernych tutoriali. phpMyTicket przyda si kademu, kto organizuje tego typu imprezy. Licencja: GNU GPL http://phpmyticket.com/

ccMail

ccMail to program do prowadzenia list mailingowych. Su one do rozsyania emaili wielu osobom. Administrator ma do dyspozycji narzdzie, za pomoc ktrego moe zaoy jedn lub wicej list, a nastpnie wysya na nie poczt oraz zarzdza kontami uytkownikw. Dla potencjalnego subskrybenta przewidziano z kolei formularz, za pomoc ktrego moe si on zapisa na wybrane listy wystarczy, e zaznaczy w spisie ich nazwy i poda swj adres emailowy. W ten sam sposb moe si rwnie wypisa. Do dziaania ccMail wymaga jedynie parsera PHP w wersji 4.1 lub nowszej. Licencja: GNU GPL http://www.cicoandcico.com/products.php?o ption=ccmail

nteraktywny czat w czystym PHP? Jak najbardziej. Program MAHC CHAT wymaga jedynie serwera PHP (koniecznie z linii PHP4, gdy PHP5 nie jest jeszcze obsugiwane), na ktrym go postawimy. Aby korzysta z programu MAHC CHAT, trzeba zaoy sobie konto. Wystarczy wej na stron, na ktrej jest udostpniany, wybra nicka i haso oraz zaznaczy opcj CREATE NEW ACCOUNT . Od tej chwili moemy zacz rozmawia. W dziaaniu MAHC CHAT przypomina inne systemy do pogawdek: mamy okienko, w ktrym pojawiaj si wypowiedzi wszystkich uytkownikw oraz lini wprowadzania swojej wiadomoci. Podczas dyskusji moemy korzysta z kilkunastu emotikonek. Program pozwala te na wysyanie wiadomoci prywatnych dowolnemu uytkownikowi. Moemy to zrobi na dwa sposoby: wpisujc wypowied do tej samej linii, do ktrej wpisujemy wypowiedzi publiczne pojawi si ona wtedy w panelu konwersacji, ale odczyta j bdzie moga tylko osoba docelowa (troch podobnie jak w IRC) lub wysyajc wiadomo na skrzynk, ktr ma kady uytkownik. W drugim przypadku wypowied nie pojawi si w panelu konwersacji. Podobnie jak inne systemy czatowe, MAHC CHAT oferuje podzia na niezalene, tematyczne pokoje rozmw. Standardowo zdefiniowanych jest 8 takich pokoi. Moemy zwikszy ich liczb, a take usuwa istniejce lub edytowa ich ustawienia. Niestety, wszystkie te czynnoci trzeba przeprowadzi rcznie, edytujc pliki prefs.ini oraz welcome.php. Sama rozmowa to jednak nie wszystko. Program pozwala nam ustali melodi MIDI, ktr sysze bd wszystkie osoby znajdujce si w danym pokoju. Moemy te gra z drug oso-

b w jedn z wybranych gier: szachy (Chess), warcaby (Checkers), krzywki (Crosswords), wisielec (Hangman), kko i krzyyk (TicTacToe) oraz Dicezee. W tym celu trzeba wybra gr i wysa do kogo zaproszenie, aby si przyczy. Osoba ta dostanie od nas wiadomo prywatn, na ktr moe odpowiedzie (co oznacza zgod) lub nie. Moemy te sprawdzi, kto jest aktualnie zalogowany i w jakim pokoju przebywa, a take zobaczy list najnowszych logowa (nick, komputer, z ktrego si czy, godzina logowania i okres pomidzy t godzin a chwil obecn). Program ma cakiem dobr dokumentacj. W trakcie dziaania aplikacji dostpna jest jej instrukcja obsugi, obejmujca czatowanie, granie, odtwarzanie muzyki oraz cigawk emotikonek (jakiej kombinacji znakw odpowiada kada z nich). Producent zaczy rwnie informacje techniczne na temat instalacji i konfiguracji programu. Jak wspomnielimy na pocztku, MAHC CHAT dziaa w czystym PHP. Nie potrzebuje nawet bazy danych, gdy wszelkie dane gromadzi w plikach. Twrca podaje, i dodatkowym wymogiem jest posiadanie programu cron (i zmodyfikowania pliku /etc/crontab), co sugerowaoby konieczno posiadania systemu uniksowego. Jest on jednak potrzebny wycznie do wykrywania nieaktywnych uytkownikw i mona si bez niego obej. MAHC CHAT to naprawd ciekawa propozycja dla wszystkich, ktrzy potrzebuj systemu do pogawdek na niezbyt du liczb osb (przy wikszej iloci uczestnikw mog si pojawi problemy z dostpem do danych w plikach).

Licencja: GNU GPL http://sourceforge.net/projects/mahc/

8

www.phpsolmag.org

PHP Solutions Nr 3/2005

Opis CDWinBinderphpBeans

W

brew powszechnej opinii, PHP nie jest wycznie dobrym jzykiem skryptowym dziaajcym po stronie serwera. Jednym z dowodw na jego wszechstronno jest istnienie pakietu WinBinder. Za jego pomoc moemy tworzy w PHP aplikacje okienkowe dla MS Windows. W prosty sposb skonstruujemy interfejs graficzny (GUI, ang. Graphical User Interface) dla dowolnej aplikacji. Pierwszym, co przychodzi na myl kademu, kto zajmuje si interfejsami uytkownika jest wic podobiestwo WinBindera do innych rozwiza GUI, np. PHP-GTK. I rzeczywicie, w zakresie tworzenia interfejsw s one podobne: w pierwszym i drugim przypadku skadamy interfejs z widgetw, korzystamy ze zdarze (ang. events) i akcji (ang. actions). Rwnie ich uycie jest tak samo atwe. Tu jednak podobiestwa si kocz. PHP-GTK i rozwizania pokrewne su bowiem wycznie do tworzenia GUI. WinBinder za jest czym wicej: przy jego uyciu stworzymy aplikacj natywn MS Windows tak, ktra korzysta z klas i funkcji dostpnych w API tego systemu operacyjnego. Mamy wic do dyspozycji wszystkie moliwoci PHP plus ca funkcjonalno Windows we wszelkich moliwych zastosowaniach. WinBinder zapewnia nawet niskopoziomowy dostp do zasobw systemu (wczajc w to pami RAM). Program nie zmusza nas jednak do korzystania z funkcji niskopoziomowych. Wrcz przeciwnie dla najczciej wykonywanych operacji, przede wszystkim tych zwizanych z GUI, ma swoje klasy i funkcje, ktre opakowuj (ang. wrapping) elementy natywne. Podobnie, jak w systemach GUI znajdziemy tu wic klasy dla tworzenia okienek, przyciskw, menu, paskw zada, pl tekstowych, przypisywania skrtw klawiszowych (zwanych akceleratorami), rysowania, itd. Opakowane zo-

stay rwnie klasy suce do czenia zdarze (np. kliknicie na przycisk) z akcjami zdefiniowanymi przez uytkownika (np. wypisanie tekstu). Oczywicie, WinBinder jest zwizany z systemem MS Windows i nie bdzie dziaa w adnym innym rodowisku, np. na Linuksie. Czy mona to uzna za wad? Z jednej strony tak, gdy utrudnia to i ogranicza przenoszenie aplikacji stworzonych z jego uyciem. Jednak z drugiej strony, korzystajc z API Windows bez adnych porednikw moemy pisa wydajniejsze i szybsze aplikacje i co ju zostao powiedziane korzysta ze wszystkich funkcji tego systemu operacyjnego. Wiemy ju, i rozwizania typu PHP-GTK nie oferuj takich moliwoci. Pozostaje wic kwestia wyboru. Z innych funkcjonalnoci WinBindera warto wspomnie o obsudze baz danych. Rozszerzenie to zawiera uniwersalny system dostpu do baz danych (obecnie tylko MySQL i SQLite). Ma take wbudowany serwer SQLite, nie trzeba wic go dodatkowo instalowa. Archiwum WinBindera zawiera wszystko, czego potrzebujemy. Znajdziemy tam wic zarwno binaria, jak i kod rdowy biblioteki. Twrcy zaczyli rwnie manual, ktry do dokadnie przedstawia jej moliwoci oraz kilka przykadw od bardzo prostych, jak aplikacja Hello World do bardziej skomplikowanych, jak np. edytor GUI (a raczej zalek edytora, na bazie ktrego mona zbudowa powan aplikacj). Na korzy WinBindera zdecydowanie przemawia to, i jest on projektem czsto uaktualnianym i znajduje si w repozytorium PECL-a (wszystkie projekty, ktre tam trafiaj musz zosta wczeniej sprawdzone). Licencja: BSD http://pecl.php.net/package/winbinder http://www.hypervisual.com/winbinder/

phpBeans to protok RMI (ang. Remote Method Invocation). Suy do komunikacji midzy klientem a serwerem i nawizuje poczenie przez TCP/IP. Pod wzgldem przeznaczenia przypomina protokoy SOAP oraz XML-RPC. Pozwala na udostpnianie obiektw i metod PHP-owych na serwerze. Moemy z nich korzysta przy pomocy dowolnego klienta, ktry dziki API bdzie je traktowa tak samo, jak swoje wasne klasy. Twrcy phpBeans udostpniaj biblioteki do tworzenia aplikacji klienckich w jzykach PHP i Ruby oraz oprogramowania serwerowego w PHP. Dodatkowo, na witrynie projektu znajduje si pena specyfikacja protokou phpBeans oraz API klienta i serwera a take sporo innych dokumentw, w tym tutoriali uatwiajcych poznanie i wdroenie phpBeans. Licencja: GNU GPL lub komercyjna (serwer), GNU LGPL (klient dla PHP i dla Ruby) http://phpbeans.com/

OpenDocMan

OpenDocMan to program do zarzdzania repozytorium plikowym, przeznaczony dla wikszych firm i organizacji. Jak podaje producent, narzdzie spenia normy zarzdzania dokumentami ISO 17025 oraz OIE. Pozwala na znajdywanie plikw przy pomocy wyszukiwarki oraz przyznawanie im uprawnie dostpu wg uytkownika (poszczeglnym osobom lub ich zdefiniowanym grupom) albo kategorii. Dla kadego zbioru tworzona jest historia operacji na nim wykonywanych, a jego stare wersje s zachowywane w archiwum. S tam rwnie przenoszone pliki skasowane, o ile nie usuniemy ich trwale. OpenDocMan pozwala nam rwnie ustala dat wanoci pliku, po ktrej bdzie on np. zdjty z listy. Moemy te kontrolowa wstawianie nowych plikw do archiwum poprzez wyznaczenie moderatorw, ktrzy bd je akceptowa lub odrzuca. Instalacj OpenDocMana moemy przeprowadzi rcznie lub automatycznie. Do dziaania, program ten wymaga PHP4 lub nowszego, serwera MySQL (wersja 3.22 lub nowsza) i serwera WWW (testowany na Apache 1.3.x). Podsumowujc: ciekawa propozycja dla organizacji majcych due repozytoria plikowe. Licencja: GNU GPL http://sourceforge.net/projects/opendocman/

colorer take5

colorer take5 to biblioteka, ktrej zadaniem jest kolorowanie skadni kodu rdowego. Obsuguje ponad sto jzykw programowania, wrd ktrych znajduje si oczywicie PHP i HTML. Colorer korzysta (zarwno w przypadku danych wejciowych jak i wyjciowych) ze standardu znakw Unicode, jak rwnie wszystkich omiobitowych stron kodowych. Mona atwo rozbudowywa funkcjonalno biblioteki, gdy do tworzenia schematw uywa ona specjalnego, opartego na XML-u jzyka HRC, umoliwiajcego m.in. prawidowe kolorowanie skadni fragmentu napisanego w jednym jzyku zagniedonego w kodzie stworzonym w innym jzyku (np. skrypt PHP osadzony w kodzie HTML). Warto nadmieni, i producent udostpnia rne formy dystrybucji colorera, w tym jako wtyczki do edytora Eclipse i menedera plikowego FAR. colorer take5 to biblioteka warta zainteresowania kadego programisty, ktremu potrzebna jest atrakcyjna prezentacja kodu rdowego. Licencja: PHP License http://pecl.php.net/package/colorer http://colorer.sourceforge.net/php/

PHP Solutions Nr 3/2005

www.phpsolmag.org

9

Opis CDSSH w PHPObsuga protokou SSH (SSH2) w PHP? Jak najbardziej. Umoliwia to PECL-owe rozszerzenie ssh2 PHP-owe API dla biblioteki libssh2. Za jego pomoc mona korzysta ze wszystkich funkcji libssh. Pozwala nam wic ono nawiza poczenie, w ktrym dane bd kompresowane zlibem lub nie, obsuguje rne standardy szyfrowania (m.in. aes256-cbc, 3des-cbc, blowfish-cbc). Korzysta z uwierzytelniania hasem lub kluczem publicznym. Potrafi nawiza z serwerem zarwno sesj shella (nasz komputer jest traktowany jak terminal systemowy), jak i SCP (wymiana plikw midzy obydwiema stronami). Dodatkowo, ma zaimplementowan obsug SFTP (bezpiecznego FTP). Licencja: BSD (libssh2), PHP (ssh2), Open Publication License (dokumentacja) http://pecl.php.net/package/ssh2/ http://www.libssh2.org

XDebug

X

RAR w PHP

Dziki rozszerzeniu o nazwie RAR moemy pod PHP korzysta z archiww spakowanych popularnym pod systemami DOS i Windows programem RAR. Biblioteka ta pozwala nam przeglda archiwum i uzyskiwa informacje o plikach (nazwa, rozmiar pliku spakowanego i rozpakowanego, czas utworzenia i modyfikacji, atrybuty, wersja RAR-a uyta do kompresji). Rozszerzenie korzysta z darmowego programu unRAR, ktry trzeba osobno zainstalowa. Podsumowujc: narzdzie przydatne kademu programicie wdraajcemu obsug plikw w PHP. Licencja: PHP License http://pecl.php.net/package/rar/ http://pl2.php.net/rar

PanaChart

Napisana w PHP klasa Pana Chart umoliwia szybkie generowanie wykresw. Wrd wykresw, ktrych tworzenie umoliwia, s supkowe, liniowe czy kropkowe. Rezultat swojego dziaania zapisuje w formacie PNG. Aby z niej korzysta, potrzebne jest jedynie PHP4 i biblioteka GD 2. Na witrynie projektu znajduje si sporo przykadw wykorzystania klasy PanaChart oraz dobra dokumentacja. Licencja: GNU GPL http://www.panacode.com/panachart/

Debug to zaawansowana biblioteka debugujca dla PHP. Pozwala na ledzenie (ang. tracing) przebiegu programu i wyapywanie bdw. Sporzdza w pliku raport dziaania programu i zapisuje w nim wybrane elementy kodu, np. nazwy i wartoci zmiennych czy wywoania funkcji. Uywajc parametrw ustalamy, ktre z tych elementw chcemy ledzi w czasie dziaania programu lub wystpienia bdu. Innym udostpnianym przez XDebug narzdziem jest Profiler. Suy do obliczania cakowitego czasu kompilacji programu do opkodu (ang. opcode) i jego wykonywania oraz czasw przeprowadzania poszczeglnych operacji, m.in. wywoa funkcji. Profiler tworzy raporty z uyciem tych danych. Moemy je zapisywa w pliku tekstowym albo formacie kompatybilnym z KCacheGrind (http://kcachegrind.sf.net). Pozwala to wykry i poprawi najwolniejsze fragmenty skryptu. Domylnie, XDebug wysya informacj o bdzie na standardowe wyjcie (np. do przegldarki WWW albo konsoli). Moe jednak rwnie dziaa jako serwer debugujcy i wsppracowa z klientami, np. IDE (m.in. Maguma Workbench). XDebug kontaktuje si z nimi przy uyciu protokou GDB albo DBGp. Daje to programi-

cie kilka dodatkowych moliwoci, m.in. ustawianie puapek (ang. breakpoints) miejsc, w ktrych program musi si zatrzyma. Mog przerywa dziaanie programu w okrelonej linii, po wywoaniu wybranej funkcji lub przy wystpieniu ustalonej wartoci zmiennej. XDebug pozwala programicie zadecydowa, co ma si dzia po zatrzymaniu dziaania programu przez puapk. Moemy m.in. kaza PHP kontynuowa skrypt, przeskoczy do nastpnej instrukcji czy zatrzyma program cakowicie. Podsumowujc: XDebug to nieodzowna biblioteka dla kadego profesjonalnego programisty PHP. Licencja: The Xdebug License 1.01 http://www.xdebug.org

IPPFP

T

SystemMount

Dziki rozszerzeniu SystemMount moemy w PHP montowa i odmontowywa dyski twarde, napdy CD, DVD i podobne pod systemami uniksowymi, jak np. Linux. SystemMount pozwala nam rwnie sprawdzi, czy dane urzdzenie jest zamontowane oraz czy jego zamontowanie jest moliwe. Pakiet jest nieodzowny dla kogo, kto zajmuje si programowaniem systemowym w PHP. Licencja: PHP License v3.0 http://pear.php.net/package/System_Mount

HTML_Menu

HTML_Menu to rozszerzenie, ktre tworzy menu nawigacyjne witryny internetowej na podstawie danych z tablicy asocjacyjnej. Webmaster ma do wyboru kilka wersji menu, m.in.: lista, drzewo wielopoziomowe czy przyciski suce do przechodzenia na poprzedni lub nastpn stron. Kadej pozycji przypisujemy tytu i linka. Menu jest automatycznie generowane na wszystkich stronach, na ktrych znajduje si odwoanie do niego. Podsumowujc: bardzo przydatne twrcom stron WWW. Licencja: PHP License http://pear.php.net/package/HTML_Menu

worzenie interfejsw graficznych (GUI) w PHP nie jest rzecz atw, zwaszcza biorc pod uwag ich rnorodno: HTML (strona WWW), PHPGTK (aplikacja okienkowa) czy ncurses (aplikacja tekstowa). Wymaga to od programisty przygotowywania osobnych wersji aplikacji dla kadego interfejsu. Biblioteka IPPFP uatwia i skraca te czynnoci i pozwala na cakowite oddzielenie GUI od czci funkcjonalnej programu. Obsuguje wszystkie wymienione interfejsy. Niezalenie od tego, ktry z nich wybierzemy, kod definiujcy go bdzie taki sam. Zmieniamy tylko jeden parametr... Podobnie jak w PHP-GTK, w IPPFP mamy zestaw kontrolek (widgetw, ang. widgets). Tworzymy je przy uyciu klasy ippfp i traktujemy jako osobne obiekty. S wrd nich m.in.: przyciski, listy checkbox i radiobox, pola tekstowe, tabelki, listy przewijalne, pola do umieszczania obrazka i linka. Osobnym i bardzo istotnym elementem jest siatka (ang. grid) do po-

rzdkowania elementw. Dziaa ona podobnie jak tabelka w HTML-u: tworzymy jej wiersze i kolumny, w ktrych ustawiamy widgety. Wszystkie kontrolki umieszczamy w elemencie zwanym widokiem (ang. view). Na stronie projektu dostpna jest dobra dokumentacja oraz przykady uycia biblioteki (niektre z nich zostay rwnie zaczone w archiwum do cignicia). Licencja: GNU LGPL http://www.ippfp.org/

10

www.phpsolmag.org

PHP Solutions Nr 3/2005

Opis CDosTicketText_Password

o

sTicket to program dla dziau pomocy technicznej (ang. support). Suy do zarzdzania probami o wsparcie techniczne przysyanymi przez klientw mailem lub przy uyciu formularza na stronie WWW. Kademu przychodzcemu do nas zgoszeniu (ang. ticket) przypisywany jest identyfikator (ticket id). Dodatkowo, zgoszenie zawiera nazw klienta, identyfikator dziau (np. Pytania techniczne) i temat. Pracownik dziau pomocy odbiera to zgoszenie i kontaktuje si z jego autorem przy pomocy narzdzi osTicketa. osTicket ma te nieze moliwoci konfiguracyjne, ktre podzielono na zakadki. Najpierw ustawiamy parametry konta pocztowego i definiujemy dziay pomocy (zakadka Categories) oraz przypisujemy im konta emailowe. Klienci bd adresowa zapytania do wybranego dziau. Nastpnie dodajemy konta uytkownikw oraz ich grupy okrelajce uprawnienia dostpu do poszczeglnych czci programu (w tym dziaw pomocy). Pniej tworzymy wzory maili dla

klientw (m.in. informacja o akceptacji zgoszenia). Instalacja osTicketa nie nastrcza kopotw. Musimy jedynie wrzuci go na serwer WWW i uruchomi program instalacyjny. Jest on bardzo wygodny i przeprowadzi za nas wikszo operacji. Rcznie musimy jedynie zaoy baz danych i utworzy uytkownika majcego do niej pene prawa dostpu. osTicket wymaga PHP (4 lub 5) i MySQL-a (w wersji 3.23 lub nowszej). Wad osTicketa jest brak mechanizmu wtyczek (pluginw). Licencja: GNU GPL http://www.osticket.com

Rozszerzenie Text_Password to generator hase pod PHP. Z jego pomoc mona tworzy hasa, ktre da si wymwi (ang. pronounceable) oraz te, ktrych nie da si wymwi (ang. unpronounceable). Hasa obu typw tworzone s na podstawie podanego cigu znakw. Program przestawia ich kolejno uywajc w tym celu jednego z algorytmw, m.in. XOR (rnica arytmetyczna), shuffle (losowy wybr znaku), reverse (odwrcenie cigu) czy ROTX++ i ROTX-- (przesuwanie znakw do przodu i do tyu). Biblioteka Text_Password moe by przydatna wszdzie tam, gdzie trzeba wygenerowa proste hasa, ktre uytkownicy powinni jak najszybciej zmieni w systemach takich, jak np. fora dyskusyjne, blogi, serwisy randkowe czy emailowe, itd. Licencja: PHP License http://pear.php.net/package/Text_Password

HTTP_Client

EasyORM obiektowo-relacyjny maper bazy danych

T

worzenie w PHP kodu do zarzdzania baz danych to mudne zajcie, powtarzajce si przy kadym projekcie. Lepiej go generowa wg opisu struktury bazy danych i schematu (zwanego map) jej wykorzystania przez nasz aplikacj. Wykonaj to mapery obiektowo-relacyjne czyli ORM-y (ang. object-relational mappers). Na podstawie mapy tworz one klasy PHP, ktrych metody wykonuj kwerendy SQL, a pola przechowuj dane. Takim programem jest EasyORM. Uywa on map zapisanych we wasnym jzyku ORML (ktry jest zestawem tagw XML-a). Tagi ORML-a opisuj tabele uywanej bazy i operacje do wykonania. Wemy np. wyszukiwanie rekordw zawierajcych konkretne wartoci. Su do tego findery (tagi Efektem ich uycia jest utworze). nie metod zawierajcych kwerendy SELECT. Najwaniejsze parametry finderw to informacje o bazie danych, opisy klas do utworzenia i sposobu mapowania do nich tabel BD. Zaletami EasyORM-a s: wydajno, funkcjonalno i bezpieczestwo operacji (szczeglnie unikanie anomalii opera-

Rozszerzenie HTTP Client udostpnia API do zaawansowanego zarzdzania poczeniami HTTP. Umoliwia midzy innymi wysyanie da (ang. requests) POST, GET i HEAD przy uyciu pojedynczych funkcji. Pozwala ustawia parametry wybranego dania lub domylne dla wszystkich. Posiada rwnie funkcje odczytu odpowiedzi serwera, w tym zwracania ostatniej z nich. Umoliwia kontrolowanie transmisji dziki mechanizmowi listenerw (ang. listeners). Pozwala rwnie w wygodny sposb uruchamia przekierowania HTTP oraz ustawia ich maksymaln liczb. Dodatkowo, HTTP Client zapewnia obsug ciasteczek (ang. cookies). Moemy je docza do sesji (wysya), odbiera, aktualizowa lub usuwa. HTTP Client powinien znale si w kolekcji kadego twrcy oprogramowania korzystajcego bezporednio z protokow sieciowych. Licencja: PHP License http://pear.php.net/package/HTTP_Client

Net_FTP

cji bazodanowych). EasyORM umoliwia uycie transakcji (chronicych spjno danych). Pozwala te blokowa rekordy (co zapobiega kolizjom midzy uytkownikami) i stosowa typ AUTO_INCREMENT (zapewnia to unikalno rekordw). Powan wad EasyORM-a jest jego kiepska dokumentacja. Wielu rzeczy trzeba si zwyczajnie domyli na podstawie podanego przykadu, zdawkowych informacji technicznych i kodu rdowego programu. EasyORM zosta napisany w PERL-u. Wymaga jego instalacji (wersji 5.6.0 lub nowszej) z pakietami: Lingua::EN::Inflect, XML::Parser, DBI i DBD::mysql. Oprcz tego potrzebne bdzie PHP (wersja 4.0.6 lub nowsza) i MySQL (wer. 4.0.1). Licencja: GNU GPL http://www.mrjoy.com/easyorm/

Biblioteka Net_FTP znaczco rozszerza funkcjonalno wbudowanego do PHP klienta FTP. W przeciwiestwie do niego, umoliwia rekurencyjne wykonywanie operacji na katalogach. Moemy wic kasowa, kopiowa na serwer i z serwera foldery wraz ze wszystkimi plikami i podfolderami, co znaczco podnosi wygod uytkowania klienta FTP. Rozszerzenie pozwala te klientowi otrzymywa informacje na temat postpu (stopnia wykonania) poszczeglnych operacji (np. kopiowania), co jest bardzo uyteczn opcj przegldarek FTP. Uywanie wbudowanych do PHP funkcji FTP-owych przy wykorzystaniu Net_FTP rwnie nie stanowi adnego problemu. Rozszerzenie to opakowuje (ang. wrapping) bowiem te funkcje i umoliwia korzystanie z nich w taki sam sposb, jak ze swoich metod. Podsumowujc: Net_FTP to rozszerzenie FTP-owe z prawdziwego zdarzenia. Licencja: PHP License http://pear.php.net/package/Net_FTP

Net_Ping

Pingowanie komputerw pod PHP? Jak najbardziej. Umoliwia to rozszerzenie Net_Ping. Wystarczy ustawi parametry (m.in. ilo powtrze, rozmiar pakietu, ttl, timeout) i moemy pingowa. Podsumowujc: prosta i przydatna biblioteka. Licencja: PHP License http://pear.php.net/package/Net_Ping/

PHP Solutions Nr 3/2005

www.phpsolmag.org

11

Opis CDMP3_IDRozszerzenie MP3_ID umoliwia manipulacj tagami ID3. Znajduj si one w kadym pliku MP3 i zawieraj takie pola opisowe jak tytu, artysta, album, rok wydania, numer cieki czy gatunek muzyki. MP3_ID umoliwia nam odczyt, modyfikacj, zapis i kasowanie tych pl. Moe si przyda np. komu, kto tworzy internetow szaf grajc (gdzie szczeglnie poyteczne bd funkcje odczytu) czy skrypty, ktre maj suy do masowej modyfikacji tych oznacze. Dodatkow funkcjonalnoci MP3_ID jest odczytywanie danych poszczeglnych ramek (ang. frames) pliku MP3. Licencja: GNU LGPL http://pear.php.net/package/MP3_ID

Coppermine Photo Gallery

C

Top Music

Top Music to modu dla popularnego systemu CMS-owego PHP-Nuke. Umoliwia proste i szybkie tworzenie witryn muzycznych, takich jak sklep z pytami czy portal mionikw muzyki. Pozwala sporzdza listy zespow posortowane od A do Z oraz dodawa i wyszukiwa szczegowe informacje o nich (nazwa, gatunek, biografia), ich dyskografii (m.in. tytu i rok kadego albumu i lista piosenek na nim wydanych) i konkretnych utworach. Moemy take zamieszcza prbki utworw i sprzedawa pyty w sklepie internetowym, udostpnia odwiedzajcym nasz witryn rankingi, w ktrych mog gosowa na ulubione utwory. Top Music jest rwnie systemem wielojzycznym. Podsumowujc: ciekawe rozwizanie dla kogo, kto planuje otworzy portal zwizany z muzyk. Licencja: GNU GPL http://www.sergids.com/ http://phpnuke.org

oppermine Photo Gallery to rozbudowany system do tworzenia i zarzdzania galeriami zdj. Kad galeri dzielimy na albumy, ktre umieszczamy w wielopoziomowych kategoriach. Pozwala to utrzyma odpowiadajcy nam podzia tematyczny. Dodawanie zdj jest bardzo wygodne. Klikamy na Upload file, w okienku dialogowym wybieramy pliki (z dysku lub wskazanego URL-a). Nastpnie nadajemy kademu obrazkowi tytu i opis, i wybieramy mu album. W midzyczasie Coppermine (wykorzystujc bibliotek GD lub ImageMagick) tworzy jego miniaturk. Coppermine jest systemem dla wielu uytkownikw. Administrator moe zarzdza ich kontami oraz banowa trwale lub czasowo wybrane osoby. Kade konto naley do odpowiedniej grupy uytkownikw i dotycz go jej ustawienia. Wrd nich s m.in. ilo przydzielonego miejsca na dysku i uprawnienia uytkownikw: dodawanie nowych zdj, komentowanie zamieszczonych lub wysyanie ich mailem jako pocztwek interneto-

wych (ang. ecards) oraz tworzenie galerii osobistych. Instalacja Coppermine jest prosta. Wystarczy rozpakowa archiwum i przej do jego katalogu gwnego. Uruchomi si program instalacyjny, ktry przeprowadzi wszystkie potrzebne czynnoci (oprcz zaoenia bazy danych). Do dziaania Coppermine wymaga parsera PHP4 (od wersji 4.1.0), serwera WWW (zalecany Apache), MySQL-a (wersja 3.23.23 lub nowsza) oraz biblioteki GD lub ImageMagick.

Licencja: GNU GPL http://coppermine.sourceforge.net

ARIA Business Management

Aria Business Management to program klasy ERP, ktry suy do zarzdzania przedsibiorstwem. Koncentruje si na sprawach ksigowych. Pozwala na zarzdzanie zobowizaniami i nalenociami, wystawianie i przyjmowanie faktur oraz rachunkw od dostawcw i dla odbiorcw. Umoliwia rwnie uporzdkowanie spraw magazynowych: zamawianie surowcw, sprzeda towarw, prowadzenie inwentaryzacji, itd. Wszystkie funkcje s podzielone tematycznie i umieszczone w menu rozwijalnych. Otwarty kod rdowy umoliwia dostosowanie programu ARIA do wymogw formalnych w kadym kraju. Podsumowujc: cakiem dobry pakiet ERP. Licencja: GNU GPL http://arias.sourceforge.net/ http://demo.aria-erp.org

PHP Solutions Live opis pyty CD

N

PhpDig.net

PhpDig.net to wyszukiwarka internetowa napisana w PHP z uyciem systemu bazodanowego MySQL. Dziaa na zasadzie pajka (ang. spider) internetowego. Poszukuje zadanej frazy na wybranych witrynach oraz indeksuje w bazie danych strony, ktre j zawieraj. Posuguje si odnonikami umieszczonymi na kadej przegldanej stronie (rwnie w JavaScripcie). Pozwala na szukanie indeksowanie plikw tekstowych i HTMLowych, a z odpowiednimi rozszerzeniami rwnie PDF-w czy plikw Microsoft Office (w tym: Worda, Excela i PowerPointa). PhpDig.net to fajna i lekka wyszukiwarka, ktr kady moe postawi na swojej stronie. Licencja: GNU GPL http://www.phpdig.net

a pycie CD zamiecilimy PHP Solutions Live bootowaln dystrybucj Linuksa opart na Auroksie 10.2. Stanowi ona kompletn platform testow, zawierajc PHP5, bazy danych MySQL, PostgreSQL i Firebird oraz serwer WWW Apache. Pozwala na testowanie i modyfikowanie opisanych w artykuach aplikacji, a take tworzenie i korzystanie z wasnych skryptw (naley je umieszcza w katalogu /var/www/html). Po jej uruchomieniu ukae si okno przegldarki internetowej, zawierajce menu pyty podzielone na kategorie. Pierwsz z nich jest prezentacja. Znajduj si w niej wspomniane ju aplikacje. S one gotowe do wykorzystania i moecie je uruchomi jednym klikniciem. Zachcamy do ich testowania i modyfikowania! W nastpnych kategoriach znajdziecie listingi z naszych projektw, a take pokany zestaw opensourcowych pakietw i darmowe artykuy z innych pism wydawnictwa Software. PHP Solutions Live pozwala na korzystanie z dyskw twardych (wszystkie partycje s automatycznie montowane podczas startu systemu) oraz sieci lokalnej i In-

ternetu. Sie trzeba najpierw skonfigurowa. Moecie to zrobi na kilka sposobw. Pierwszym z nich jest uycie dziaajcego pod KDE narzdzia graficznego (Ustawienia Systemowe > Konfiguracja sieci (sie)). Drug metod jest wywoanie polecenia netconfig z konsoli. Po jego uyciu trzeba zrestartowa sie poleceniem service network restart. Kolejnym sposobem jest uycie trzech komend linuksowych:ifconfig urzdzenie adres_IP route add default gw adres_bramki_internetowej

orazecho "nameserver adres_IP" > /etc/resolv.conf.

yczymy miej pracy z Livem i czekamy na Wasze sugestie. Redakcja PHP Solutions

12

www.phpsolmag.org

PHP Solutions Nr 3/2005

PHP Solutions LiveTOOLS phpMyTicket ccMail OpenDocMan PanaChart Top Music ARIA Business Management PhpDig.net MAHC CHAT Xdebug osTicket EasyORM RedBlog Coppermine Photo Gallery phpBeans WAMPServerPHP Solutions Live przetestuj dziaajce aplikacje bez instalacji PHP5 Firebird, PostgreSQL, SQLite i MySQL Narzdzia SEO Galeria zdj z wykorzystaniem EXIF Generator banerw i pokaz slajdw z wykorzystaniem Minga TaskPlanner (XUL, SOAP)

PECL cracklib colorer take5 ssh2 rar GAMES

dodatkowe artykuyPEAR SystemMount HTML_Menu Text_Password HTTP_Client Net_FTP Net_Ping MP3_ID

phpPoker Sieciowa gra 3D w 250 liniach kodu Ataki SQL Injection na PHP/MySQL Znajdowanie i wykorzystywanie bdw w kodzie PHP Nvu zaawansowany pakiet do tworzenia stron WWW Bluefish edytor dla programistw serwisw WWW Programy do tworzenia GIFw na potrzeby stron WWW

GUI WinBinder IPPFP

Na CD znajduj si wszystkie omawiane w artykuach skrypty

Testy

AddWeb 7 optymalizacja i promocja stron WWWPrzemysaw Bogusz

W

szyscy chcemy, aby nasze strony internetowe miay jak najwiksz popularno: znajdoway si w jak najwikszej liczbie katalogw i wyszukiwarek oraz zajmoway tam jak najwysze pozycje. Pomoe nam w tym program AddWeb 7 rozwizanie z rodziny SEO (ang. Search Engine Optimizers). Stanowi on kompletny i rozbudowany pakiet do promowania naszych stron WWW. Zawiera 15 rnych narzdzi, dziki ktrym moemy analizowa tworzone strony pod ktem ich atrakcyjnoci dla wyszukiwarek, optymalizowa je tak, aby bya ona jak najwiksza i wreszcie promowa. Do tego mamy kilka narzdzi pomocniczych, o ktrych opowiemy pniej. Producent AddWeba zaczy rwnie do pakietu dobrze napisane tutoriale oraz kilka kreatorw. Program przyda si zarwno osobom chccym jak najszybciej wypromowa swoj stron, jak i tym, ktrym zaley na dokadnym dopasowaniu kadego ustawienia. Jak pisz sami autorzy, pocztkujcy uytkownik moe czu si zagubiony w morzu opcji i technicznego sownictwa. Polecaj zapozna si z tutorialami i baz wiedzy (Knowledgebase) dotyczc promowania stron i powizanego z nim sownictwa. S one dostpne rwnie w testowej wersji pakietu. Znajdziemy w nich duo ciekawych informacji. Przejdmy jednak do moliwoci programu.

Analiza

Najwaniejszym narzdziem do analizowania naszej strony jest doradca (Page Advisor). Powie nam on, jak wyszukiwarki widz nasz stron. Program analizuje wystpowanie w witrynie okrelo-

nych sw kluczowych (w wersji testowej maksymalnie trzech). Analizy moemy dokona pod ktem wszystkich wyszukiwarek albo ich cile okrelonej grupy (ta druga opcja dostpna jest tylko w penej wersji aplikacji). Dziki doradcy dowiemy si, ile razy sowo kluczowe wystpuje w naszym serwisie oraz jak czsto pojawia si w linkach, nagwkach czy metatagach (metaznacznikach). Otrzymamy take procentowy wynik skutecznoci naszych dziaa marketingowych. Moemy rwnie porwna nasz stron z konkurencj, aby przekona si, kto jest lepiej widoczny w Sieci. Jeli ju zaczlimy promowa nasz stron, AddWeb pomoe nam na bieco ledzi skuteczno naszych dziaa, czyli prowadzi statystyki odwiedzin. Dziki opcji Site Stats Live! dowiemy si, ktra wyszukiwarka przynosi nam najwiksz ogldalno i jakie sowa kluczowe lub frazy wpisuj uytkownicy, aby nas odnale. Program pozwala take na obliczanie przychodw, jakie potencjalnie przynosi nam strona. W tym celu mnoy ilo odwiedzin przez okrelon przez nas warto pojedynczej wizyty (wyraon w centach). Uruchomienie statystyk dla danej strony wymaga umieszczenia na niej kodu JavaScript, w czym rwnie pomocny bdzie AddWeb. Trzecim narzdziem pomocnym w ocenie pozycji naszej strony jest Rank Check. Sprawdza on, czy strona obecna jest w danych wyszukiwarkach i jeli tak, to na ktrym miejscu. Dziki jego uyciu oszczdzimy mnstwo czasu, ktry musielibymy powici na odwiedzenie kadej wyszukiwarki oddzielnie. AddWeb poda nam dodatkowo informacje na te-

mat tego, ile razy nasza strona pojawia si w danej wyszukiwarce oraz ile spord zindeksowanych w niej stron zawiera linki do nas. Na koniec warto wspomnie o kalkulatorach (ROI Calculator). Pozwalaj nam one okreli, ile pienidzy powinnimy wydawa miesicznie na marketing w Sieci, jakich zyskw moemy oczekiwa, itd. W tym celu bdziemy musieli poda kilka danych, m.in.: redni zysk z jednego odwiedzajcego, procent odwiedzajcych decydujcych si na dokonanie zakupu, itp. Moliwoci te przydadz si z pewnoci firmom prowadzcym sprzeda przez Internet. Analizowanie strony to naprawd mocny punkt AddWeba.

Optymalizacja

Po dokonaniu analizy bdziemy mogli zaj si optymalizacj naszej strony. Narzdzie Page Builder pozwala na przerobienie istniejcej strony gwnej lub stworzenie tak zwanego wejcia na stron (ang. doorway). W pierwszym przypadku AddWeb pomoe zoptymalizowa nasz stron, m.in.: przez zmian opisw wystpujcych na niej rysunkw (cecha ALT tagu ), metaznacznikw (),

itd. W drugim przypadku wygenerujemy zupenie now stron, ktra bdzie zawieraa link do naszej witryny. Opcja ta jest przydatna dla sajtw, ktrych strona gwna ulega czstym modyfikacjom, np. jest tworzona dynamicznie na podstawie informacji z bazy danych. Aby uatwi nam prac, AddWeb udostpnia nawet kilka szablonw tej strony. Niezalenie od wybranego wariantu, zanim ostatecznie zaakceptujemy efekt kocowy, moemy podda go weryfikacji i analizie. Przydatne oka si take dwa narzdzia do wyszukiwania: Keyword Search oraz Keyword Finder. Pierwsze pozwala na wyszukiwanie sw i fraz w kilku najwikszych wyszukiwarkach i katalogach. Dziki niemu nie bdziemy musieli sami otwiera przegldarki internetowej i wpisywa do niej adresu wyszukiwarki. Keyword Finder z kolei pokazuje, ile razy dane sowo (wystpujce samodzielnie lub we frazie) byo wpisywane do wszystkich wyszukiwarek w poprzednim miesicu. Opisany zestaw narzdzi czyni z AddWeba kompletne rozwizanie do optymalizacji stron WWW.

Rysunek 2. Tworzenie strony zawierajcej sowa kluczowe za pomoc AddWeb 7 stron. Potem wystarczy doda nasze dane do bazy danych Link Tradera i da innym moliwo odnalezienia nas. Jednoczenie sami moemy przeszukiwa baz pod ktem interesujcych nas linkw. Kiedy znajdziemy odpowiedniego partnera, proponujemy mu wymian linkw i jeli si zgodzi umieszczamy u nas link do jego strony. AddWeb pozwala nam kontrolowa, czy osoby, z ktrymi si wymienilimy, rzeczywicie utrzymuj na swojej stronie link do naszej witryny. Pamitajmy, e obecno naszego adresu WWW na duej iloci innych witryn oznacza, e nasz serwis yje. Dziki temu wyszukiwarki same dodaj nas do swoich indeksw i umieszczaj na lepszych pozycjach. AddWeb posiada take specjalne narzdzie o nazwie Pay/Bid Engines, ktre pozwala na wspprac z serwisami oferujcymi patne pozycjonowanie. Uycie AddWeba uatwia promowanie strony WWW i skraca czas potrzebny na przeprowadzenie czynnoci z nim zwizanych. monogramu zada. Dziki niemu system moe sam, o okrelonym czasie lub w wyznaczonych odstpach czasowych, dokonywa regularnych analiz i zgasza strony do katalogw i wyszukiwarek. Z kolei Reports pozwala tworzy rozbudowane raporty z informacjami o naszej stronie, obecnoci w wyszukiwarkach, pozycjach w katalogach, itd. Pena automatyzacja tworzenia raportw jest dostpna jedynie w wersji patnej programu AddWeb7.

Promowanie

Jeli nasza strona jest ju cakowicie przygotowana, moemy przystpi do jej promowania, czyli umieszczania informacji o niej w wyszukiwarkach i katalogach. Suy do tego narzdzie Submission. Zgodnie z informacjami producenta, w bazie AddWeb 7 znajduje si ponad 700 tysicy wyszukiwarek i katalogw. Dbao o odpowiednie sowa kluczowe i promowanie strony to jednak nie wszystko. Waniejsze jest, aby linki do naszej strony byy obecne na jak najwikszej iloci witryn innych ni wyszukiwarki i katalogi. Dlatego te AddWeb ma specjalne narzdzie o nazwie Link Trader. Umoliwia ono wymian linkw pomidzy uytkownikami AddWeba. Aby z niego skorzysta, bdziemy musieli utworzy na naszej witrynie specjaln stron, na ktrej znajd si odnoniki do innych Nazwa Adres WWW Wymagania Cena AddWeb 7 http://www.4allgood. com/software/addweb7 Windows $119,95

Ocena kocowa

Dodatki

Na deser mamy kilka pomocniczych narzdzi, m.in. wbudowanego klienta FTP. Chocia jest to przydatne rozwizanie, ma jednak mao wsplnego z gwnymi zadaniami, jakie stawiamy przed AddWebem. Warto natomiast wspomnie o dwch spord pozostaych narzdzi. Scheduling umoliwia stworzenie har-

AddWeb 7 to bardzo solidna aplikacja. Spodobaa nam si jej uniwersalno dua ilo opcji dla cierpliwych oraz kreatory dla pragncych szybkich rezultatw. Na uwag zasuguje rozbudowany zbir informacji i przewodnikw, ktre uatwiaj prac i sprawiaj, e ju po jednym dniu uywania AddWeba mona dowiedzie si bardzo wielu rzeczy na temat promowania stron. Poza tym, wersja testowa jest ograniczona w bardzo maym stopniu, co pozwala praktycznie w peni cieszy si zaletami AddWeba za darmo przez 30 dni. A to ju wystarczajcy okres na przekonanie si, czy zastosowanie programu przynioso nam jakie wymierne korzyci w postaci wzrostu liczby odwiedzin. Nasz ostateczn ocen jest pitka. n

15

PHP Solutions Nr 3/2005

www.phpsolmag.org

Testy

Maguma Workbench 2.2.0 dobre IDE dla PHPKrzysztof Sobolewski

M

aguma jest rozbudowanym edytorem programistycznym dajcym programicie wiele moliwoci w dziedzinie tworzenia, przegldania i debugowania kodu oraz zarzdzania projektami.

Pierwsze wraenie

Aby cign Magum, choby w wersji trial, musimy by zarejestrowani na stronie producenta. Mao tego nastpnie trzeba poda adres MAC swojej karty sieciowej, aby otrzyma klucz licencyjny. Program bdzie dziaa tylko na komputerze z t kart. To troch za duo wymaga jak na wersj prbn. Za to instalacja Magumy nie powinna przysparza kopotw nawet pocztkujcym uytkownikom. Po uruchomieniu Magumy mamy okno z du iloci opcji podzielone na panele. Jeli kogo przeraa ich liczba, moe w dowolnej chwili wyczy je wszystkie klawiszem [F12] albo ustawia wywietlanie kadego z osobna w menu Window. Zaadujmy teraz jaki skrypt PHP-owy ukae si on w okienku edycyjnym. Otwrzmy kolejny i przyjrzyjmy si grnej czci tych okien. Kade z nich ma swoj zakadk, dziki ktrej szybko je otworzymy. Jest to o wiele wygodniejsze ni wybieranie okienka w menu. Przyjrzyjmy si teraz bliej moliwociom Magumy.

Tworzenie i zarzdzanie projektami

Projektem w Magumie jest zestaw plikw i katalogw, ktre bd wykorzystywane w jednym pakiecie i nie musz by ze sob powizane w kodzie (np. instrukcjami include). Tworzymy go dla wygody

zarzdzania. Zarzdzanie to jest najwygodniejsze z menu Project, gdy dostpna w programie przegldarka projektw (ang. Workspace) nie spenia swoich funkcji. Moemy utworzy nowy projekt, zaadowa istniejcy lub poczy si z serwerem CVS. Maguma pozwala dodawa do projektu istniejce pliki z komputera lokalnego lub odlegego serwera (co jest szczeglnie istotne przy duych projektach). Oprcz wymienionego ju CVS-a mamy do dyspozycji FTP lub SFTP. Przejdmy teraz do przegldarki projektw. Akurat ten niewtpliwie wany element nas rozczarowa. Co z tego, e umoliwia integracj z CVS-em, jeeli tak topornie zarzdza si za jego pomoc lokalnymi plikami projektu? Aby doda jakikolwiek plik do projektu, musimy otworzy specjalne menu i klikn na opcj Add File, otwierajc okienko tyle zachodu, aby wykona tak podstawow czynno! I tak dobrze, e mona zaznaczy od razu wiksz liczb plikw... Chcielibymy mc uywa do tego przegldarki plikowej (o ktrej zaraz opowiemy) oraz dodawa do projektu aktualnie otwarte pliki bez wyszukiwania ich na dysku. Nie zabrako w Magumie przegldarki klas (ang. Class Browser). Pozwala ona przeglda wszystkie klasy, funkcje i zmienne. Mamy w tym celu drzewo, na ktrego pierwszym poziomie s wszystkie otwarte pliki. Pod kadym z nich widniej wspomniane pozycje. Bardzo uyteczne jest odnajdywanie w kodzie deklaracji wywietlanych elementw. Np. klikajc na nazw klasy przeniesiemy si do miejsca jej deklaracji. Gdy za najedziemy kursorem w kodzie na t deklaracj, zostanie ona wyrniona w przegldar-

ce. Warto nadmieni, i przegldarka klas w Magumie nie jest w aden sposb poczona z przegldark projektw. Rozumiemy, e nie kady otwierany plik musi nalee do projektu. Uderza jednak brak moliwoci wywietlania w niej informacji o tym, w jakim projekcie (moemy otworzy wicej ni jeden) znajduje si dana klasa. Przydaaby si opcja zmiany uywanej w tej przegldarce hierarchii, aby odzwierciedlaa struktur projektu. Przegldarka plikw (ang. File Browser) w Magumie ssiaduje z przegldark klas. Byaby dobrze wykonanym elementem, ale wspomniany ju brak integracji z przegldark projektw oraz opcji nawizania sesji CVS, FTP czy SFTP zmniejsza jej uyteczno.

Przegldanie kodu programu

Do przegldania i edycji kodu, Maguma udostpnia nam cakiem wygodne w nawigacji okno edytora, oczywicie z numeracj linii. Nasz uwag zwrcia funkcja ustawiania zakadek, do ktrych moemy si potem odwoywa. Mamy tu dwie moliwoci zakadki numerowane (0..9), do ktrych przechodzimy klawiszami [CTRL]+[cyfra] oraz nienumerowane (nawigacja do nastpnej albo poprzedniej). Spodobaa nam si te moliwo zwijania i rozwijania blokw kodu (ang. code folding), np. if {}. Suy do tego ikonka znajdujca si z lewej strony nagwka kadego bloku. Przydaje si to szczeglnie przy rozbudowanych projektach. Podobnie oceniamy moliwo zawijania dugich linii (ang. word wrap). Kolorowanie skadni w Magumie jest uruchamiane automatycznie wg rozsze-

16

www.phpsolmag.org

PHP Solutions Nr 3/2005

Testy

rzenia pliku. Moemy zmieni domylnie ustawione kolory. Dotyczy to skadni wszystkich wywietlanych elementw kodu PHP, HTML, JavaScript i znakw interpunkcyjnych (kategoria _global). Podczas edycji kolorw dostpny jest podgld przykadowy fragment kodu. Wystpuje on w kadej kategorii oprcz _global (co jest niedopatrzeniem).

Edycja kodu

Przypady nam do gustu funkcje podpowiadania skadni, ktrymi dysponuje Maguma. Piszc nazw dowolnej funkcji, dostajemy podpowied dotyczc jej parametrw. W przypadku funkcji wbudowanych PHP, program informuje nas m.in. o jej przeznaczeniu. A wprowadzajc nazw obiektu i wskanik (->) do jego metod i pl, zobaczymy ich list. Kolejn funkcj podpowiadajc jest autouzupenianie kodu. Naciskajc [CTRL]+[Spacja] ujrzymy list dostpnych w PHP funkcji, zmiennych i klas. S na niej zarwno elementy wbudowane w PHP (w Magumie 2.2.0 trzeba to najpierw ustawi, co jest drobnym mankamentem), jak i zdefiniowane przez nas. Inn, rwnie uyteczn moliwoci Magumy jest uatwianie wpisywania powtarzajcych si fragmentw i to na kilka sposobw! Pierwszym z nich jest PHP Block wstawienie ogranicznikw kodu PHP. Przydaje si przy czstym przechodzeniu pomidzy PHP i HTML. Dwie pozostae moliwoci: automatyczne wypenianie (Autocompletion) oraz wycinki kodu (Code Snippets) zapewniaj wstawianie zdefiniowanych przez programist kawakw kodu, np. instrukcji warunkowych. Moemy te szybko dodawa nowe klasy przy uyciu Class Wizarda. W dziaaniu jest on podobny do funkcji uzupeniajcych. Nasz sympati wzbudzio te dokumentowanie kodu (zgodne ze standardem PHPDocumentora, czyli PHPDoc). Moemy wstawi pusty nagwek PHPDoca albo uzupenia istniejce. W drugim przypadku, Maguma prowadzi programist po sekcjach kadego nagwka w pliku. InnNazwa Adres WWW Wymagania Cena

ciekaw moliwoci Magumy jest upikszanie kodu HTML (HTML Tidy), m.in. zamiana na XHTML, wcinanie blokw, zawijanie tekstu, usuwanie pustych akapitw czy poprawianie bdnych URL-i. Jak wida, Maguma dysponuje rozbudowanymi funkcjami edycyjnymi i ciko powiedzie, aby jej czego brakowao. W tej beczce miodu jest jednak yka dziegciu. Ot programista moe uy kadej z tych funkcji (modyfikujc kod rdowy) w najmniej spodziewanym momencie gdy nie widzi kodu rdowego, bo na ekranie wywietlany jest panel wynikowy. Nie musimy chyba tumaczy, jak powane problemy moe to powodowa, zwaszcza w poczeniu z nieuwag... Producent powinien wyczy t kopotliw moliwo.

Uruchamianie i debugowanie

k dostpu do niego) czy te korzysta z funkcjonalnoci skonfigurowanego serwera PHP+WWW (podajemy jego adres URL). Po drugie, mamy moliwo uruchamiania programw PHP-owych w zewntrznej, wybranej przez nas przegldarce WWW. Niezalenie od sposobu uruchomienia skryptu moemy mu przekaza parametry. Jeli chodzi o debugowanie, Maguma wsppracuje z bibliotek Xdebug, ktr moemy cign ze strony http:/ /www.xdebug.org. Przy jej udziale, moemy m.in.: ustawia puapki (ang. breakpoints), pogld zmiennych (ang. watches), uruchamia sesj JIT czy wykonywa program krok po kroku. Inn uyteczn funkcj jest podgldanie HTML-a bez parsowania PHP przydaje si, jeli tworzymy kod czystego HTML-a lub uywamy szablonw.

Uruchamianie i debugowanie skryptw to kolejna istotna funkcjonalno Magumy. Przechodzc do uruchamiania: po pierwsze, moemy odpala skrypty w wewntrznej przegldarce Magumy. Najpierw trzeba ustali, czy chcemy wywoywa bezporednio plik parsera PHP (musimy wtedy poda cie-

Podsumowanie

Maguma Workbench 2.2.0 http://www.maguma.com Linux lub Windows, parser PHP, przegldarka internetowa (opcjonalna), serwer WWW (opcjonalny), Xdebug (opcjonalny) 239 (zalenie od zestawu)

Maguma to bardzo rozbudowane IDE. Dua liczba opcji w kadej opisanej przez nas kategorii czyni z niej powan propozycj dla kogo, kto chce profesjonalnie tworzy aplikacje. Jednak wystpujce w niej bdy wymg rejestracji wersji trial, niedopracowane przegldarki projektw i plikw oraz moliwo przypadkowego uycia funkcji edycyjnych sprawiaj, i nasz ostateczn ocen jest czwrka. n

17

PHP Solutions Nr 3/2005

www.phpsolmag.org

Biblioteka

Cute PHP Library biblioteka dla kadegodubaczaAlexander Meindl

B

ardzo czsto zdarza si, e w rnych projektach uywane s stale te same metody, np. do walidacji informacji wprowadzanych przez uytkownika czy formatowania danych. W takim przypadku przydatna moe okaza si biblioteka zawierajca gotowe do wykorzystania, czsto uywane w codziennej pracy i majce oglny charakter (i przez to, elastyczne w zastosowaniu) funkcje. Jej uycie pozwolioby twrcom oprogramowania zaoszczdzi mnstwo czasu. Dobrze by rwnie byo, gdyby bya ona projektem opensourcowym, tworzonym, aktualizowanym i uywanym przez wielu programistw, gdy umoliwia to rwnie zwikszenie bezpieczestwa jej dziaania poprzez szybkie wykrywanie bdw. Przykadem takiego rozwizania jest biblioteka Cute PHP Library, w skrcie znana jako cphplib.

ych projektach, ale i w bardzo rozbudowanych aplikacjach, a take zapobiega konfliktom nazw z istniejcymi metodami i poprawia czytelno kodu. Wyjtek stanowi funkcja isvoid(), zdefiniowana poza klas ze wzgldu na czsto jej uycia; ma ona zastpowa funkcj empty().

Funkcje walidacyjne

Zastosowania

Biblioteka cphplib zawiera ponad 70 funkcji (metod). Mona je podzieli na cztery kategorie: funkcje walidacji danych, funkcje konwersji danych, funkcje narzdziowe, funkcje sesyjne (DB Session).

Historia cphplib

Omwimy po przykadzie dla kadej kategorii. Zestawienie wszystkich mona znale na stronie WWW http://cphplib. sourceforge.net/documentation.php. Listing 1. Sprawdzanie poprawnoci adresu e-mail// sprawdzanie bez DNS if (!$cphp->checkEmail( "[email protected]")) print ("Niepoprawny ". "format adresu e-mail"); else print ("Poprawny ". "format adresu e-mail"); // ze sprawdzeniem DNS if (!$cphp->checkEmail( "[email protected]", true)) print ("Niepoprawny ". "adres e-mail"); else print ("Poprawny ". "adres e-mail");

Biblioteka powstaa jako podstawa rozpowszechnianego na opensourcowej licencji programu do zarzdzania relacjami z klientami (CRM) ITNAS (http:// www.itnas.de). Jej twrca, meindlSOFT (http://www.meindlsoft.de), postanowi opublikowa j na licencji LGPL (Lesser General Public License). Pierwsza wersja zostaa napisana w roku 2001. Zawieraa wtedy tylko kilka funkcji, ktrych zbir rozrs si z czasem do pokanych rozmiarw. Jest jednym z wielu darmowych projektw zarejestrowanych w serwisie SourceForge.net (http:// www.sourceforge.net), skd te mona j pobra. Wszystkie oferowane przez cphplib funkcje (metody) s ujte w jedn klas o nazwie cphplib. Takie ich zgrupowanie pozwala je stosowa nie tylko w ma-

Ich zadaniem jest kontrolowanie poprawnoci danych wprowadzanych przez uytkownika, albo pewnych wartoci w programie. Pobieraj zwykle kilka parametrw okrelajcych midzy innymi reguy sprawdzania i zwracaj warto logiczn true (prawda) lub false (fasz). Zalicza si do nich np. funkcja checkEmail() (Listing 1), ktrej zadaniem jest sprawdzanie poprawnoci adresu e-mail. W pierwszej instrukcji warunkowej checkEmail() sprawdza poprawno formatu adresu, a w drugiej czy podana domena (cz adresu po @) istnieje. Poniewa zachodzi tu odwzorowywanie nazwy domeny na adres IP za pomoc serwera DNS, potrzebujemy aktywnego poczenia z Internetem. Jeeli nie zawsze jest ono moliwe, to najlepiej nie korzysta z tej opcji, gdy wydua ona znaczco czas wykonania skryptu (prbujc sprawdzi nazw komputera na serwerze). Dane odbierane przez serwer WWW od klienta powinny by sprawdzane po stronie serwera. Ich weryfikacja wycznie po stronie klienta, np. przy uyciu rozwiza dziaajcych w oknie przegldarki i opartych na JavaScript lub VBScript jest niewystarczajca, gdy z pomoc tych wprowadzonych danych da si dokona nieuprawnionych modyfikacji, a pene sprawdzenie ich poprawnoci jest niemoliwe. Jeeli wic administrator serwisu Listing 2. Zastosowanie funkcji sql_ value

18

www.phpsolmag.org

PHP Solutions Nr 3/2005

Biblioteka

Wymagania

Aby uywa cphplib, trzeba mie PHP w wersji 4.1.0 lub nowszej. Do obsugi bazy danych i operacji na datach niezbdna jest biblioteka PEAR, dostarczana zazwyczaj w pakiecie instalacyjnym PHP (wszystkie dystrybucje Linuksa zawieraj obecnie PEAR, a jej aktualn wersj moemy pobra z http://pear.php.net). Jeeli zamierzamy wykorzysta cphplib w kilku rnych projektach, warto uzupeni dyrektyw include _ path w pliku php.ini o nastpujcy cig znakw:include_path=".:/usr/share/pear:/usr/share/cphplib"

rzystywane z bazami MySQL i PostgreSQL. Oferuj kilka plusw w stosunku do funkcji natywnych: moliwo zakoczenia sesji, gdy przegldarka jest nadal wczona, podsesje (ang. subsession) do kadej sesji mona przyporzdkowa dowoln ich liczb; jest to szczeglnie przydatne, gdy chcemy zagwarantowa moliwo kilkukrotnego, rwnolegego uycia danego skryptu przez jednego uytkownika (np. otwarcia strony w kilku oknach przegldarki jednoczenie), system rezerwowy na wypadek, gdyby w przegldarce uytkownika wyczona bya obsuga ciasteczek.

W artykule przyjto, e plik cphplib.inc znajduje si w katalogu /usr/share/cphplib. Jeeli jednak chcemy uy biblioteki cphplib tylko w jednej aplikacji, mona j wczy do skryptu rwnie podajc jej bezwzgldn ciek dostpu.

chce mie pewno, e np. podany adres e-mail jest poprawny, bo jest on niezbdny do realizacji zamwienia, to program zainstalowany w tym celu przez niego powinien przeprowadza walidacj po stronie serwera (lub obu).

Funkcje konwersji

zywanej do bazy danych za pomoc zapytania SQL na taki, ktry baza moe bez problemw przyj (np. stawiajc przed znakami ' i " odwrotne ukoniki oraz ujmujc zadan warto w znaki apostrofu). Utworzone zapytanie SQL zostaje nastpnie przekazane do bazy danych w postaci:SELECT * FROM dane WHERE imie='peter'

Funkcje konwertujce to bardzo funkcjonalne narzdzia, ktre przeksztacaj zadan warto na okrelony format. Podobnie jak funkcje walidacyjne, pobieraj kilka parametrw definiujcych format wejciowy (rdowy) i wyjciowy (docelowy), ale w przeciwiestwie do nich, zwracaj wartoci o rnych typach. Inne uywane przez nie parametry (np. lokalizacyjne) su dopasowaniu funkcji do konkretnych potrzeb i mog by ustawiane globalnie, w obiekcie cphplib. Przykadem funkcji konwersji jest metoda sql _ value() (Listing 2). Przeksztaca ona format wartoci przeka-

Jeeli przekazywana warto jest acuchem pustym, zamiast niej zostaje uyta warto NULL. Inne parametry pozwalaj na dodatkowe ustawianie dziaania funkcji, np. znakomit ochron przed atakami SQL Injection.

Sesje bazodanowe

Metody klasy dbsession maj zastpowa grup wbudowanych funkcji PHP do obsugi sesji (PHP Session) i by wyko-

To rozwizanie ma pewn wad: inaczej ni w sesjach PHP, wartoci zmiennych nie s zapisywane automatycznie. Zastpienie klasycznej obsugi sesji PHP mechanizmem DB Session w ju istniejcym duym projekcie nie jest wic zadaniem banalnym. Aby korzysta z dbsession, trzeba najpierw nawiza poczenie z baz i utworzy w niej dla tego mechanizmu tabele dbsession i dbsession _ detail. Aktywacja dbsession nastpuje za pomoc polecenia dbsession _ start. Aplikacja uywajca dbsession moe korzysta z ciasteczek (cookies), albo nie. Funkcji sesyjnych uywamy rwnie do obsugi formularzy, ktra odbywa si za pomoc metod $cphp->form _ A

R

E

K

L

A

M

PHP Solutions Nr 3/2005

www.phpsolmag.org

19

Bibliotekastart()

Cute PHP Library (cphplib)w zestawieniu funkcji biblioteki cphplib). Omwimy tylko metod hitcounter(), ktra jest korzystajcym z bazy danych licznikiem goci, mogcym mie posta tekstow lub graficzn. Nadaje si do wykorzystania przez ISP (dostawcw usug internetowych), poniewa jeden, centralny plik konfiguracyjny moe obsuy wiele domen. Aby umieci licznik na stronie WWW, wystarczy doda jedn linijk kodu (Listing 4). Funkcja ihitcounter() pobiera nastpujce parametry (niektre z nich s opcjonalne): identyfikator uytkownika, zliczanie przeadowa stron, n ilo cyfr w liczniku, s uywany styl graficzny.id r

i $cphp->form _ end(). Pierwsza z nich tworzy otwierajcy kod HTML formularza ( ) . Listing 3 przedstawia kompletny przykad skryptu korzystajcego z mechanizmu dbsession.

Funkcje narzdziowe

Mamy do dyspozycji jeszcze cay szereg metod, ktrych nie da si przyporzdkowa do adnej z wymienionych wczeniej grup (pena lista znajduje si Listing 3. Przykad uycia DB Sessionremove($text1);.

Nastpnie dodamy tekst Advanced solutions for web professionals ($text1) oraz wizerunek sonia ($logo2). Tym razem bd si one znajdoway poza obszarem klipu. Uoymy je obok siebie tak, e ich Listing 6. Kod odpowiadajcy za utworzenie pokazu slajdw