piątek, 22 sierpnia 2008

Perełka wśród wróżb pod kapslami tymbarka

Co tu dużo pisać...
Czemu akurat programista trafił taki kapsel?

czwartek, 21 sierpnia 2008

Więcej Możliwości - wyniki konkursu

Tak więc konkurs Microsoftu dobiegł końca.
Pozostało mi tylko gratulować zdobywcom głównych nagród:
- Marek Pyka (nagroda: konsola XBox 360)

- Paweł Rawekant (nagroda: telefon HTC Pharos)
oraz wszystkim pozostałym uczestnikom konkursu ;)

Ja swoją nagrodę też dostanę ;P (smycz MS...)

W sumie nie liczyłem na jakąś większą nagrodę.
Konkurs polegał na wymyśleniu hasła marketingowego dla usług Win
dows Mobile.
Napisałem jakieś dwa zdania od niechcenia i tyle :P

A oto i ja na liście zwycięzców:


wtorek, 19 sierpnia 2008

Utrzymywanie sesji między subdomenami serwisu i innymi domenami

Ostatnio spotkałem się z problemem utrzymywania sesji między wszystkimi subdomenami w serwisie.
Co się okazało, większość programistów aplikacji sieciowych spotkała się już z tym problemem.
Sesje i ciasteczka to produkt bardzo wrażliwy, nie może być ustawiany jak nam sie podoba lecz według pewnych reguł...

Wróćmy do problemu:

Mamy dwie domeny:
1. dottech.pl
2. php.pl

I każda z tych domen posiada kilka subdomen.

Problem polega na tym, że jak wystartuje sesję np w mojekwiatki.dottech.pl to chcę, aby była widoczna nawet z poziomu forum.php.pl


Rozwiązanie:

Do pliku .htaccess w głównym katalogu każdej subdomeny dodajemy linijkę:
php_value session.cookie_domain '.dottech.pl

Gdzie domena to nazwa domeny pod którą jest serwis.

OK teraz utrzymujemy sesję w obrębie naszej domeny, ale jeszcze nie jesteśmy widoczni z drugiej domeny.

Tak więc: w nagłówku strony dodajemy skrypt JavaScript (No dobra, ECMAScript):

<script type="text/javascript">
function setOutCookie(session_id,host){
var addr = host+'__setcookie.php?sid='+session_id;
sessionImg = new Image();
sessionImg.src = addr;
}

setOutCookie('<?=session_id();?>','http://dottech.pl/');
setOutCookie('<?=session_id();?>','http://php.pl/');
</script>
Ten sam skrypt musi być w nagłówkach wszystkich serwisów i być wywoływany w momencie wywoływania sesji (np. logowania).

Ostatni krok to plik __setcookie.php, który powinien być w głównych katalogach domen.
Skrypt ten ustawia sesję i wygląda następująco:
<php
preg_match('#[^.]+\.[^.]+$#', $_SERVER['HTTP_HOST'], $matches);
setcookie('PHPSESSID', $_GET['sid'], 0, '/', '.'.$matches[0]);
?>
I to wszystko ;)
Od teraz możemy się cieszyć jedną sesją na wielu swoich domenach :)

Pozdrawiam,
Michał Woliński

niedziela, 17 sierpnia 2008

Słowem wstępu

Witam na moim blogu.

Założyłem go, aby zebrać w jednym miejscu swoje przemyślenia na różne tematy, głównie tematy związaniem z tworzeniem oprogramowania.
Niekiedy będę przedstawiał projekty nad którymi obecnie pracuję wraz z postępem prac a niekiedy już gotowe (tzw Case Studies).
Będę tutaj opisywał problemy związane z programowaniem wynikające z bieżących projektów.
Nad sugerowanym rozwiązaniem każdy będzie mógł dyskutować, co powinno dać pogląd na dany problem z różnych punktów widzenia (np mojego i waszego).

Dobra dosyć tego gadania bo mamy już trochę późną porę, a rano trzeba wstać do pracy ;)

Zapraszam do komentowania poszczególnych notatek.

Pozdrawiam,
Michał Woliński

shutdown -s -t 15 -c "dobranoc"