Kodowanie (szyfrowanie) skryptów PHP

PHP - Tips & Tricks Komentarze (1) »

PHP to język skryptowy. Ma to swoje zalety (np. nie trzeba się martwić tym, że są różne systemy operacyjne i dokonywać kompilacji kodu źródłowego dla każdej z platform). Jednak zaleta języka PHP może być też jego wadą. Gdy napiszesz dość ciekawy skrypt, to ktoś może podpatrzeć źródła i np. wypuścić swój skrypt w którym wykorzysta co ciekawsze rozwiązania algorytmiczne, nad którymi Ty siedziałeś kilka nocy. Ciężko również jest napisać skrypt który by był licencjonowany (np. ograniczenie czasowe albo ograniczenie na domenę bo ktoś kto choć trochę zna PHP może wyciąć kilka odpowiednich linijek kodu i funkcja sprawdzająca legalność instalacji zawsze zacznie zwracać wartość true).

Jeśli chcesz zakodować skrypt to możesz skorzystać albo z darmowych narzędzi zaciemniających kod (opiszę je w najbliższym czasie), albo skorzystać z odpowiedniego programu szyfrującego pliki. Istnieje na rynku kilka rozwiązań. Czytaj dalej »

Tagi: , , , , ,

A Ty sprawdzasz, czy wysyłane maile docierają do odbiorców?

e-maile Komentarze (0) »

Tworząc jakikolwiek większy serwis pewnie zakładasz subskrypcję. Celem subskrypcji jest poinformowanie osób zainteresowanych (czyli tych, które zostawiły swojego maila) o tym, że zaktualizowałeś stronę np. dodałeś nowy artykuł. Czasami zamiast subskrypcji wysyła się np. co miesiąc biuletyn z listą najciekawszych artykułów, które pojawiły się w serwisie od czasu wysłania ostatniego biuletynu.

Wysyłanie e-mailii można zlecić zewnętrznym serwisom świadczącym takie usługi (np. freebot.pl, pername.pl, sare.pl), bądź też zainstalować u siebie na serwerze gotowy skrypt do wysyłania mailingów (albo napisać samemu np. opierając się na klasie phpmailer, którą opisałem na tym blogu).

Jeśli wysyłasz maile ze swojego serwera, to należy od czasu do czasu testować, czy maile faktycznie dochodzą. Otóż różne konta pocztowe mają filtry antyspamowe, które mogą zatrzymywać Twoje e-maile! Warto jest samemu założyć konta na różnych najpopularniejszych portalach i je dopisać do swoich subskrypcji. Ja założyłem konta w następujących portalach: wp, onet, interia, o2, gmail, gazeta, hotmail. Ponieważ tych konto pocztowych jest dość sporo, więc podpiąłem je pod jeden program pocztowy (ponieważ nacodzień używam ThunderBirda, a nie chciałem „śmieciowej” poczty mieszać z normalną więc zainstalowałem sobie pakiet SeaMonkey, gdzie jest program Kurier Poczty, na którym się wzorowali twórcy ThunderBirda).

Jakie są z tego korzyści? Otóż wiem, na jakie serwery dociera poczta, więc nie żyję w błogiej nieświadomości myśląc naiwnie, że moje maile docierają do wszystkich zainteresowanych 🙂

Tagi: , , ,

Jak wysyłać błędy wykonania skryptu w PHP na e-maila?

PHP - Tips & Tricks Komentarze (1) »

Pisząc skrypt w języku PHP nie zawsze jesteśmy pewni efektów. Czasami w najmniej spodziewanym momencie może się pojawić błąd. Oto przykładowy skrypt:

$b=0;
$a=100/$b;

Oczywiście na ekranie pojawi się komunikat błędy podobny do tego: Warning: Division by zero in /home/user/public_html/katalog/err.php on line 3

Oczywiście jest to celowy przykład błędu. Zazwyczaj jest tak, że wartość zmiennej b nie jest na sztywno przypisana, ale np. jest pobierana z bazy i masz pewność, że nigdy nie będzie zerem, ale na skutek kilku nieprzewidzianych okoliczności, jednak jej wartość wynosi zero i pojawia się owy błąd z dzieleniem przez zero.

Najprościej by było przed dzieleniem dać jakiegoś if’a w celu zabezpieczenia się przed taką sytuacją, ale tutaj znów nie zawsze da się przewidzieć takie sytuacje. Również testując własny kod nie zawsze się wyłapie wszystkie błędy. Niestety, ale wypluwane błędny na ekran nie wyglądają zbyt profesjonalnie. Często jest tak, że twórca aplikacji nic nie wie o pojawiających się sporadycznie błędach do czasu, aż ktoś mu nie napisze maila. Jednak internauci nie zawsze są skłonni napisać e-maila do administratora z informacją o napotkanym błędzie i często okazuje się, że administrator serwisu o owym błędzie dowiaduje się np. pół roku po napisaniu skryptu bo coś tam przez przypadek zaglądnął na stronę i akurat mu się pojawił błąd.

Można jednak bardzo łatwo w PHP dodać własną obsługę błędów. Co byś powiedział, gdyby w razie wystąpienia takiego błędu został wysłany Tobie raport wprost na skrzynkę e-mail? Wystarczy tylko napisać jedną prostą funkcję i nakazać interpreterowi PHP, aby w razie wystapienia błędu owa funkcja została wywołana. Czytaj dalej »

Tagi:

Jak włączyć obsługę plików z rozszerzeniem php przez php5 lub php4?

PHP - Tips & Tricks 3 komentarze »

Wczoraj na jednym hostingu zainstalowałem klasę phpmailer. Wyrzucało jakieś błędy. Po krótkiej analizie okazało się, że pliki php są domyślnie interpretowane przez php4. Miałem do wyboru dwie opcje:

  • znaleźć jakąś starszą wersję klasy phpmailer kompatybilną z php4 (co jest głupotą, bo prędzej czy później na serwerze domyślnie zostanie włączona obsługa php5, więc nie ma sensu instalować przestarzałych bibliotek)
  • zmusić jakoś serwer do tego, aby pliki z rozszerzeniem php był interpretowane domyślnie przez interpreter php5

Wybrałem to drugie rozwiązanie. Okazało się, że wystarczy do pliku .htaccess dopisać aż jedną linijkę Czytaj dalej »

Tagi: , , ,

Jak wygodnie wysłać e-mail?

e-maile 3 komentarze »

Pisząc skrypt często istnieje potrzeba wysłania wiadomości e-mail. Nawet nie mam tutaj na myśli pisania prostych systemów do mailingu, ale zwykłą aplikację. Ot choćby np. prosta aplikacja gdzie użytkownik zakłada konto. Zazwyczaj przychodzi do niego wiadomość z prośbą o kliknięcie w link weryfikacyjny, potem podziękowanie za rejestrację, link do resetowania hasła również przychodzi na e-maila.

W wielu kursach php często podaje się wygodną funkcję mail. Ma ona jedną zaletę: jest prosta
mail("", "Temat", "Tresc", "Dodatkowe naglowki");

W ten sposób można szybko napisać prostą funkcję wysyłającą e-maile. Jednak gdy chcemy wysyłać e-maile w HTMLu, albo z załącznikami, albo jedno i drugie to robi się problem. Bo trzeba bawić się w tworzenie wielu dodatkowych nagłówków. Czytaj dalej »

PHP – pisanie większych projektów – zarządzanie dokumentami

PHP - Tips & Tricks 2 komentarze »

Jedną z ważniejszych rzeczy jest organizacja. Załóżmy, że podejmujesz pracę nad jakimś większym projektem. Z pewnością będziesz pomiędzy sobą z zleceniobiorcą wysyłał sporo „papierków” (mam tutaj na myśli większe projekty tworzone przez np. pół roku a nie jakiś 100 linijkowy skrypt wykonujący jakąś jedną prostą czynność). No i u mnie często sytuacja wyglądała tak, że dany plik zapisywałem na pulpicie, czasem na pendrive. Mając 2 komputery można naprawdę się nieźle pogubić i np. za jakiś czas zacząć analizować starszą wersję dokumentu. Dlatego ważne jest, aby już na początku na np. dysku C:\ założyć folder NazwaProjektu a w nim różne podfoldery i tylko i tam przechowujemy wszelkie dokumenty związane z projektem. Ja w tamtym folderze mam następujące podfoldery:

  • Dokumentacje – trzymam tam różnego rodzaju dokumentacje np. projekt bazy danych, dokumentacja API mojego modułu współpracującego z innym modułem mojego projektu, informacja jak zainstalować mój moduł itp.
  • Content – trzymam tam różnego rodzaju treści. Tworząc np. moduł Programu Partnerskiego oprócz tworzenia kodu należy też na stronie wprowadzić jakieś treści np. FAQ, regulamin, treść ofertowa na stronie głównej
  • Grafika – jako że nie jestem grafikiem, więc robotę się zleca podwykonawcy. Trzymam tam wszelkiego rodzaju pliki otrzymane od grafika
  • Baza wiedzy – różnego rodzaju pomysły (w postaci zwykłych plików DOC lub ODT), jakieś raporty, artykuły mogące być inspiracją przy wprowadzaniu jakiś usprawnień w przyszłości
  • Backupy – starsze wersje modułu (czasem się przydaje, jak np. coś w nowszej wersji nie działa, to mogę szybko rzucić okiem na starszą wersję modułu czy przez przypadek w nowszej wersji z wadliwej funkcji np. nie usunąłem jakiejś linii)
  • Testy – pisząc większy projekt często jest tak, że się zleca testy np. znajomym (opracowuję scenariusz testowy w którym dokładnie opisałem co mają obklikać a dane osoby obklikują i piszą swoje uwagi) Następnie analizuję dokumenty, oczywiste usterki poprawiam, a te mniej oczywiste często są powodem dyskusji podczas których kilkukrotnie wysyłamy sobie dany dokument z kolejno dopisanymi przez siebie komentarzami (jest to oczywiste, że nie zawsze w 100% zrozumiem co miał na myśli tester, czasem jego uwaga może być dyskusyjna itp.)
  • Todo – mój ulubiony folder zawierający listę zadań do zrobienia 😉
  • Inne – pozostałe pliki nie pasujące do powyższych kategorii

Oczywiście ta struktura folderów może u Ciebie być nieco inna. Ja podałem tylko uśredniony przykład z kilku moich projektów. Dzięki tej metodzie mam na dysku względny porządek i nie marnuję czasu na szukanie jakiegoś dokumentu czy też nie muszę się zastanawiać, która wersja danego dokumentu jest najnowsza). Warto jest również pliki datować tj. zawrzeć w nazwie datę np. todo-10-06-2010.odt dzięki czemu szybko znajdziesz najaktualniejszy plik). Wysyłając pliki pomiędzy sobą (np. raport ze scenariusza testów, który wysyłasz do testera, on do Ciebie i tak kilka razy) warto jest włączyć rejestrator zmian, wtedy od razu widać, kto co w danym dokumencie dopisał

Tagi: ,

PHP – pisanie większych projektów – porady

PHP - Tips & Tricks Komentarze (0) »

Ten wpis powstał na bazie moich doświadczeń podczas pisania większych skryptów w PHP. Postaram się tutaj udzielić kilka słów odnośnie tego, jak należy pisać skrypty w PHP, aby później było jak najmniej pracy przy ewentualnej rozbudowie. Jako przykłady ilustrujące omawiane zagadnienia dość często będę się odwoływał do PP Mapa Zdrowia, który wdrożyłem. Czytaj dalej »

Tagi: , , , ,

print_r

PHP - Tips & Tricks Komentarze (1) »

Bardzo wygodną funkcją w języku PHP jest funkcja print_r. Funkcja ta wyświetla „w czytelny sposób” zawartość obiektu, bądź tablicy (bądź zwykłej zmiennej, ale do wyświetlenia zmiennej wystarczy zwykła instrukcja echo).

Przykładowo mając taki kawałek kodu:

<?php
$a[0][0]='0x0';
$a[0][1]='0x1';
$a[1][0]='1x0';
$a[1][1]='1x1';
print_r($a);
?>

funkcja wyświetli w przeglądarce:
Array ( [0] => Array ( [0] => 0x0 [1] => 0x1 ) [1] => Array ( [0] => 1x0 [1] => 1x1 ) )

Niezbyt czytelnie, bo zamiast znaczników <br> są używane entery i dopiero po zaglądnięciu do źródła zobaczymy ową tablicę wyświetloną w czytelniejszy sposób:

Array
(
    [0] => Array
        (
            [0] => 0x0
            [1] => 0x1
        )

    [1] => Array
        (
            [0] => 1x0
            [1] => 1x1
        )

)

Jak widzisz, od razu jest to o wiele czytelniejsze, chociaż niezbyt wygodne jest zaglądanie do źródła! Jednak funkcja print_r ma dodatkowo drugi parametr (jego brak oznacza, że jest on ustawiony na false), który oznacza, czy funkcja ma zwracać wartość! Tą wartością jest owy string! Czyli można nieznacznie podrasować naszą funkcję, aby wyświetlała ową zawartość tablicy w dużo „czytelniejszy” sposób:

<?php
$a[0][0]='0x0';
$a[0][1]='0x1';
$a[1][0]='1x0';
$a[1][1]='1x1';
$output = print_r($a, true);
$output = str_replace(" ", "&nbsp;", $output);
$output = nl2br($output);
echo($output);
?>

Jak widzisz, mała rzecz, o której nie każdy wie, a naprawdę ułatwia pracę!

Tagi: , ,

Jak napisać prostą aplikację w PHP?

Podstawy PHP 2 komentarze »

Język skryptowy PHP powstał w 1994 roku i od tego czasu zdążył zdobyć olbrzymią popularność. Większość serwisów internetowych jest stworzonych właśnie w technologii PHP.

Oto kilka powodów, dlaczego PHP jest tak popularny

  • jest darmowy
  • można zainstalować zarówno pod Linuxem jak i pod Windowsem
  • skoro jest darmowy, to jest zainstalowany prawie na każdym serwerze (więc jest popularny)
  • jest prosty do nauczenia
  • skoro jest prosty i darmowy to powstało wiele tutoriali, darmowych e-booków, serwisów z poradami co dodatkowo napędza popularność PHP 🙂

Czym tak naprawdę jest PHP?  Czytaj dalej »

Tagi:

Jak napisać aplikację, która wysyła SMSy?

PHP - Tips & Tricks Komentarze (1) »

Czasami zachodzi potrzeba otrzymania SMSa z aplikacji. Oto przykładowe zastosowania, które mi przychodzą do głowy:

  • może to być jakiś raport dla administratora (np. informacja o tym, że klient złożył nowe zamówienie, informacja o kończącym się miejscu na dysku twardym, bądź prosty skrypt może monitorować stany magazynowe i wysyłać SMSa, gdy dany produkt „się kończy”)
  • może to być SMS dla klienta (np. informacja o tym, że przesyłka została nadana, albo prośba o odebranie maila w celu poznania szczegółów dotyczących finalizacji zamówienia)
  • jeśli masz numery telefonów klientów i ich daty urodzenia (np. podpisujesz z klientami umowy i masz ich numery PESEL), to możesz wysyłać SMSem życzenia urodzinowe 🙂 Napisanie prostej aplikacji, która to robi to góra jedno popołudnie pracy 🙂

Pewnie Tobie przychodzi 10 innych pomysłów na wykorzystanie SMSów 🙂  Co prawda większość z tych rzeczy można wysłać na maila, ale maila zawsze można przeoczyć, albo zbyt późno przeczytać (w szczególności, gdy wysyłamy informacje krytyczne np. o kończących się zapasach na magazynie ma to wielkie znaczenie, aby być jak najszybciej i jak najsprawniej poinformowanym o danym problemie)

Można skorzystać z darmowych bramek SMS, ale mają one następujące wady:

  • są darmowe
  • raz chodzą a raz nie
  • zawsze coś może się zmienić o czym nie będziesz poinformowany i np. po pół roku się dowiesz, że nie otrzymywałeś SMSów z krytycznymi raportami, bo coś się zepsuło
  • niektóre bramki mają zabezpieczenia w postaci konieczności przepisania znaków z obrazka (prawie nie do przejścia przez prosty skrypt, owe algorytm owego zabezpieczenia ciągle może się zmieniać)

Dlatego warto jest skorzystać z usług płatnych bramek SMS. Dzięki temu nie zawracasz sobie głowy jakimiś pierdołami technicznymi i masz gwarancję, że SMS do Ciebie dojdzie (jeśli marudzisz, że wysłanie do SMSa kosztuje od kilkunastu do dwudziestu groszy, to znaczy, że ta funkcjonalność, nie jest Tobie potrzebna ;-)) (bo jak nazwać sytuację, gdy klient składa zamówienie za np. 100 zł a Ty marudzisz, że wysłanie SMSa kosztuje np. 20 groszy?)

Czytaj dalej »

Tagi: , , ,

WordPress - Hosting: Twój hosting - Skórka: N.Design Studio - Spolszczenie: Adam Klimowski.
RSS wpisów RSS komentarzy Zaloguj się