[PHP] Utrata danych sesji przy szybkim przeładowywaniu strony.

Programując jedną ze stron internetowych natrafiłem na ciekawy problem. Podczas testowania niektórych funkcji chciałem szybko powtórzyć wysyłanie formularza, tak, aby za każdym razem został dodany do bazy danych nowy rekord testowy. Wypełniłem formularz, zatwierdziłem przyciskiem “dodaj” i voila. Potem kilka razy [F5] i [Enter], aby przeglądarka powtórzyła wysyłanie danych metodą POST. Nie byłoby w tym nic nadzwyczajnego, poza tym, że w pewnym momencie zadziałały zabezpieczenia skryptu przed nieautoryzowanym dostępem i zostałem wylogowany z serwisu bez żadnego wcześniejszego powiadomienia. Myślę sobie: “WTF?”. Ze względu na to, że jestem dosyć cierpliwy w takich sprawach [nie wyobrażam sobie życia niecierpliwego programisty ;]] powtórzyłem poprzednie kroki, za każdym razem z tym samym skutkiem. Klikając zbyt szybko na stronie po prostu traciłem dane sesji, cała tablica $_SESSION była pusta jak /dev/null. Wypadałoby w takim razie przejrzeć kod i ewentualnie zapytać Google, co o tym sądzi. Do rozwiązania problemu wystarczyło to pierwsze, jednak, żeby poznać przyczynę, należało sięgnąć po źródła zewnętrzne.

[Firefox] Otwieranie zakładki w nowym oknie.

Przez ostatnie parę dni miałem dziwny problem z przeglądarką - przy otwieraniu nowej zakładki lub przesuwaniu starej na inną pozycję Firefox nagle otwierał nowe okno wraz z adresem URL tejże. Nie spotkałem się wcześniej z takim zachowaniem, ale pomyślałem na początku, że to tylko chwilowa “słabość” i przeszedłem nad tym do porządku dziennego. Po pewnym czasie zaczęło mnie to irytować, ale wymyśliłem tymczasowe rozwiązanie - zmniejszałem rozmiar nowego okna poprzez dwukrotne kliknięcie w belkę i przenosiłem “bękarcią” zakładkę w jej poprzednie miejsce. Nie było to takie złe, ale nadal gorsze od standardowego działania, więc w końcu zmusiłem się do zapytania wujka Google: “WTF?” i znalezienia przyczyny oraz rozwiązania całego problemu.

Author
Hi, my name is Tomasz Kowalczyk and I’m a software engineer specialising in web app. Image: https://www.flickr.com/photos/skyseeker/14404947216 .
Autor
Nazywam się Tomasz Kowalczyk i w chwili obecnej jestem studentem informatyki na Politechnice Warszawskiej. Niniejszy blog jest poświęcony mojej największej pasji - programowaniu. Zajmuję się głównie tworzeniem oprogramowania [wszelkiego rodzaju stron internetowych] w języku PHP, hobbystycznie programuję też w C++. Języki jakie wykorzystuję w codziennej pracy / zabawie to [kolejność losowa]: C++ PHP [X]HTML CSS JavaScript SQL Nie są to oczywiście wszystkie, jakie znam [wybaczcie umieszczenie HTMLa na liście ;], gdyby ktoś pytał - wiem, że nie jest językiem programowania], ponieważ jak wiadomo, trzeba się edukować cały czas, jednak nie widzę sensu wymieniania tych, które znam, ale z nich w ogóle nie korzystam.
echo „Hello world!”;
Witam wszystkich na moim blogu. Ze względu na charakter tego wpisu nie będę się zbytnio produkował, zostawię sobie trochę weny twórczej na później. :) Wkrótce dodam parę informacji o tym, kim jestem i czym się zajmuję, na razie jednak mogę tylko zaprosić do czytania tego bloga, bądź dodania kanału RSS do swojego czytnika, aby nie męczyć palców wpisywaniem URLa. :) Będę wdzięczny za wszelkie opinie i sugestie dotyczące wszystkiego co na tej stronie znajdziecie.