[JavaScript, PHP] Powrót do poprzedniej strony.

Jakiś czas temu znalazłem u Piotra Sajnoga wpis o WordPressowej wtyczce Comment Redirect, pozwalającej na wyświetlenie po dodaniu przez użytkownika pierwszego komentarza na blogu strony z podziękowaniem [i zachętą do dalszej współpracy ;]]. Zostawiła tam komentarz także Banny, która zdecydowała się przetestować jej [tej wtyczki ;]] działanie także u siebie, gdzie miałem okazję pierwszy raz zetknąć się od strony użytkownika z tytułowym przekierowaniem. Zauważyłem jednak, że po dodaniu komentarza musiałem sam zatroszczyć się o “nawigację wstecz” do wpisu, ponieważ strona nie zawierała ani elementu meta refresh, ani żadnej innej JavaScriptowej metody przeniesienia na poprzednią stronę. Zasugerowałem więc w jednym z komentarzy, żeby umieściła w kodzie tej strony “coś”, co pozwoli na wygodniejsze korzystanie z tej strony. Ze względu na to, że nie zajmuje się ona programowaniem, z miejsca zostałem poproszony o pomoc.

[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.