Tag Archives: php

PHP i Session oraz http vs https na debiano podobnych.

Jako że web developer goni za nowościami, przyszedł czas na upgrade serwerów testowych (przed wdrożeniem na produkcję). Czy zwykła zmiana wersji mogła odbyć się bez problemów ? Oczywiście że nie. To akurat wie każdy.

Korzystamy dla przechowywania sesji Memcached. Po pierwsze w miarę szybkie i ładnie działa, po drugie sesja jest wsþółdzielona pomiędzy sporo serwerów. Oczywiście logowanie przez SSL’a przestało działać.

Więc w pierwszej kolejności pretensje poszły do naszej aplikacji „Znowu coś zjebaliście !”, później memcache i na koniec serwer. A nie winne były ustawienia PHP. Jeśli posiadacie serwer oparty na Debianie lub jego potomków, sprawdźcie czy macie zainstalowane rozszerzenie Suhosin, a jeśli tak to czy poniższe zmienne macie tak ustawione.

suhosin.session.encrypt = off
suhosin.session.cryptua = off

To magiczne rozszerzenie ma skłonności to innego sposobu zapisywania danych w naszej sesji. Jest to string base64 po rozkodwaniu którego znajdujemy jakiś bliżej nie określony zapis binarny. Którego nie mamy jak rozkodować. Sytuacja jest o tyle dziwna, że ta sama domena z SSL’em i bez są traktowane jak by były osobno ale nie. Sesje pomiędzy tak parą domen są osobne. Każda zapisuje się oddzielnie, pod tym samym session_id. Oczywiście parametry sesji są ustawione tak żeby domeny wspólnie korzystały z sesji. Niestety nie udało mi się rozkodować tego co sesja zapisuje. Może jeszcze znajdę chwile to postaram się zrozumieć to zjawisko. W każdym bądź razie. Rozszerzenie wyłączyć lub zmienić ustawienia i problemy znikają.

PHPCon 2010, czyli spotkanie entuzjastów i innych stworzeń

W dniach od 21 do 23 maja odbył się pierwszy zlot/konferencja miłośników i entuzjastów PHP i dźwięcznej nazwie PHPCon. Szczerze mówiąc czułem się tam dość dziwacznie ponieważ nie posiadam laptopa, a tym bardziej MacBooka czy iPada. I ponadto potrafię znaleźć temat inny do rozmowy niż programowanie, globalna walka z bugami oraz obiektowo strukturalne skomplikowanie kodu.
Musze szczerze przyznać że większość wykładów była ciekawa. Oczywiście zdarzyły się wpadki (pozdrowienia dla Pana z firmy Microsoft) lub bardzo nudne wykłady. Ale ogólną ocenę wystawiam na cztery z dużym plusem. Samych wykładów nie chce oceniać bo każdy szukał tam czegoś innego, jedni się reklamowali, a inni przedstawiali swoją wiedzę w ciekawy sposób.
Wielkie ukłony w stroną organizatorów którzy stanęli powyżej postawionego sobie zadania, organizując w całości tak świetną imprezę. Mam nadzieje że w przyszłym roku również Oni popełnią kolejną edycje, przygotują ponownie ciekawe wykłady i zachęcą ludzi do przyjazdu.
Może następnym razem jakiś wykład o wydajności, skalowalności ? Może jeśli nie słuchać to samemu wyłożyć ? Może przygotować ankietę „Jakie wykłady chcielibyście usłyszeć?”.
Zdjęcia oraz materiały z prezentacji będziecie mogli pościągać z oficjalnej strony PHPCon jak tylko się pojawią.

Instalator w php, plik samo rozpakowywujący

Trudno mi powiedzieć co to takiego jest, albo raczej jak to nazwać. Kto używa Linuksa spotyka czasami się z wersją instalatora w postaci pliku .sh który dużo waży jest skryptem ale z sporym bagażem. Wszystko ładnie po otwarciu pliku widoczny jest rzeczywiście skrypt shell’a, ale jeśli przewiniemy wystarczająco nisko zobaczymy tam „krzaczki” czyli dane do rozpakowania.
No więc tak właśnie mechanizm stworzyłem na własny i przy okazji służbowy użytek.
Read more »

Zrób to sam, wydajne odczytywanie logów linia po linii czyli Log4nalyzer

Na pewno sporo osób próbowało swoich sił w stworzeniu skryptu do zliczania odwiedzin na stronie na podstawie logów z Apache’a. W sumie nic trudnego, schemat logów jest w miarę prosty, odczytać i po sprawie. A jak wygląda sprawa przy plikach wielkości setek megabajtów lub gigabajtów ? Trzeba sprytnie to odczytywać linia po linii, przeanalizować i wywalić z pamięci. A jak mamy dwa lub więcej rdzeni w procesorze, to może by tak parę linii na raz analizować ? Read more »

Zrób to sam, z nudów układamy css’a

Z nudów człowiek robi dziwne rzeczy. Jedną z nich jest parser dla plików CSS. Początkowo miał być to tokenizer który pozwoliłby na tworzenie różnego rodzaju narzędzi operujących na stylach CSS. Niestety po zapoznaniu się dokładnie ze strukturą CSS w wersji 2.1 odkładam ten plan na bliżej nie określoną przyszłość. Ale na pewno napisze, bo może być to ciekawe doświadczenie.

Po co mi ten skrypt ? Bo czasami jak otrzymam od kogoś kawałek szablonu ze skryptami. To wygląda to jak pole po bitwie lub niekończące się tasiemce. Często w pracy grafik przysyła nam szablony pocięte do tego CSS gdzie każda klasa szablonu jest napisana w jednej linii, a do tego bardzo długiej. Ja preferuje zupełnie odmienny styl.
Read more »

Zrób to sam, __autoload

Autoload w PHP istnieje od wersji 5.0. Bardzo przydatna „magiczna” funkcja, która potrafi zaoszczędzić trochę zasobów serwera. Ładuje pliki z klasą jedynie w czasie gdy jest ona potrzebna. Rozwiązań jest za pewne wiele, niektórzy przeszukują za każdym razem system plików za nazwą klasy, a niektórzy tworzą specjalne konstrukcje katalogów. Są też rozwiązania ze stworzeniem tablicy z nazwami klas i ścieżką do plików.
I to rozwiązanie jest moim zdaniem najbardziej efektywne. Jedynym problemem jest tworzenie takiego pliku z tablicami. Oczywiście możemy ręcznie tworzyć tablice, to jest wersja dla najtwardszych. Innym sposobem jest oczywiście stworzenie prostego narzędzie do tworzenia takiej tablicy. Read more »

Kolorowanie konsoli i nie tylko

Jak każdy programista przychodzi czas na to by ułatwić sobie pracę, piszemy dziesiątki albo i setki małych lub większych narzędzi. W 90% przypadków używamy ‘echo’ lub ‘print’ zamiast systemu szablonów i jest to chyba dość oczywiste. Najnormalniej w świecie jest to zbędne i szkoda na to czasu.
Ale czemu rezygnować z jakiegoś ładnego formatu, zaznaczenia ważnych rzeczy lub błędów które pojawiły się podczas pracy. W HTML’u nie jest to trudne, użycie stylu nadanie mu koloru czcionki i po sprawie. Sprawa może wyglądać trochę gorzej jeśli (np. tak jak ja) robicie małe skrypty odpalane pod konsolą Linuksa. Tak zazwyczaj tekst jest zawsze biały, a tło czarne. Kolorowanie tekstu pod konsolą jest stosunkowo proste. Trzeba jedynie pamiętać o tym, aby po wyświetleniu treści przywrócić kolor do swojej pierwotnej postaci.
Read more »