Mój kawałek internetu
Notka ku pamięci, tak więc nie ma co liczyć na kod wysokich lotów:
session_start(); $_SESSION['ids'][] = md5(rand(0,time())); if ( isset ( $_POST['uniqid'] ) && reset ( array_slice ( $_SESSION['ids'], -2 ) ) != $_POST['uniqid'] ) { die("Double POST is not allowed."); }
Następnie w formularzu wysyłającym post dodajemy:
<input type="hidden" name="uniqid" value="<?=@end($_SESSION['ids']);?>"/>
That’s all folks!
Kilka dni temu potrzebowałem sposobu na zamianę obiektu SimpleXML na tablicę. Po chwili googlania, okazało się, że wszystkie gotowe już snippety są ogromne i mało wydajne ( głównie przerost formy nad treścią ), więc przedstawiam kilka wersji snippeta:
Read the rest of this entry »
Wczoraj udało mi się wyłożyć kompletnie produkcyjną aplikację klienta. Problemów było kilka, ponieważ serwer produkcyjny jest ustawiony tak, aby najmniejszy błąd z samego PHP nie ujrzał światła dziennego. Gdy dodatkowo nie mamy możliwości zmiany zachowania serwer, a upgrade nawalił i nie ma możliwości łatwego zdebugowania kodu, możemy ratować się takim oto snippetem:
Read the rest of this entry »
Aktualnie do pracy nad kodem wykorzystuję IDE OpenKomodo, które w sposób prosty możemy oskryptować. Mamy dostępny tam zestaw triggerów, hooków, oraz wielu innych opcji. Tak więc, dlaczego nie użyć GITI do backupowanie każdej jednej zmiany dla dowolnego pliku otwieranego przez IDE? Eclipse, czy NetBeans posiadają ‘Local file history’ – niestety w komodo i pewnie wielu innych środowiskach, takiego feature brakuje. Poza tym nie ukrywajmy, GIT jest znacznie potężniejszym narzędziem do śledzenia zmian w plikach niż te wbudowane w większości IDE.
Read the rest of this entry »
Giti jest stosunkowo prostym skryptem napisanym przy użyciu basha, który wykorzystuje GIT-a, do zarządzania kopiami zapasowymi plików, oraz katalogów. W skrócie opiszę jak działa samo giti:
Read the rest of this entry »
Na pewno nie jestem jedyną osobą, której zdarzyło się zacommitować coś do repozytorium z maszyny na której do tej pory się nie pracowało i po prostu ustawienie git config user.name zostało pominięte… W efekcie czego autorem i commiterem zmian jest kowalski@localhost bądź inny dziwoląg – co pięknie psuje wszelkiego typu statystyki zbierane przez zewnętrzne oprogramowanie ( w moim przypadku statystyki TRAC’a ). Na szczęście git posiada wiele rozwiązań na poprawienie sytuacji.
Read the rest of this entry »
Celem postu jest zaprezentowanie metody na utworzenie centralnego ( bywa, że zdalnego ) repozytorium projektów GIT-a. Założenia są takie:
- użytkownik który na serwerze zdalnym jest właścicielem projektów, nie posiada możliwości zalogowania się używając hasła
- logowanie bezpośrednie do konta SSH również nie jest możliwe
- umożliwiamy autoryzację JEDYNIE po kluczach SSH, które służą nam jedynie do kontaktowania się z git-shell
Read the rest of this entry »
Ci, którym przyszło stawiać gitorious’a, w warunkach do których nie został przystosowany ( czyli całkiem sporo standardów – jak np. pełny SSL, czy instalacja pod sub-uri ) wiedzą, że ten kawałek RoR’owatego softu, potrafi przyprawić o ból głowy.
Read the rest of this entry »
Podczas przenoszenia WSZYSTKICH swoich projektów ( oraz projektów klientów ) z repozytoriów SVN do GIT-a, chciałem, aby wszystkie rewizje, cała historia commit’ów była zachowana. Trafiłem na narzędzie git-svn, które mocno sprawę ułatwia. Niestety… nigdy nie jest AŻ TAK prosto. Przeniesienie ponad 300 repozytoriów, ręcznie, z różnych lokalizacji, eh…
Read the rest of this entry »