Cześć wszystkim.
Kilka dni temu pytalem na mikro, dlaczego robiąc funkcję remember me, nie jest generowane ciasteczko. Otóż sytuację z ciasteczkiem dało się rozwiązać. Już się generuje. Problem jest teraz inny, jeżeli wywalam ciasteczko PHPSESSID, a REMEMBERME nadal jest ważne, to użytkownik zostaje wylogowany. Czyli wychodzi na to, że #symfony2 nie sprawdza czy jest ciasteczko REMEMBERME, a użytkownik jest zalogowany tylko tyle czasu ile sesja jest aktywna. W jaki sposób zmusić #sf2, aby nie wylogowało użytkownika po zakończeniu sesji,a dopiero gdy ciasteczko REMEMBERME przestanie być ważne?

Załączam też gista z formularzem, ustawieniami security.yml i SecurityController.php (liniki 57-70), w którym to generuję ciastko rememberme.
  • 11
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Widzisz, mam 2 ciasteczka. Jedno to PHPSESSID, które jest ważne dopóki nie skończy się sesja, a drugie to REMEMBERME, które wygasa za miesiąc.
Nie wiem czy poprawnie rozumiem jak działa remember me, ale moim zdaniem ma być tak:
a) 'remember me' jest odznaczone = jestem zalogowany póki trwa sesja (wylogowuje mnie, jak PHPSESSID traci ważność).
b) 'remember me' jest zaznaczone = jestem zalogowany, póki ciasteczko REMEMBERME jest ważne.

Jeżeli wszystko zależy od
mariecziek - Widzisz, mam 2 ciasteczka. Jedno to PHPSESSID, które jest ważne dopóki n...

źródło: comment_yYgvAzI4qic2ZVT4jlB2HLiEw2x6WxkS.jpg

Pobierz
  • Odpowiedz
Próbuję zrobić logowanie się na stronę przy pomocy HWIOAuthBundle i FOSUserBundle. Facebooka skonfigurowałem korzystając tego tutorialu. Wszystko działa (tak jakby). Potrzebuję jeszcze logowania się przy pomocy Twittera. I tu pojawiają się schody.
Dodałem w config.yml parametry twittera. Dodałem path w security.yml, Dodałem funkcję (która nic nie robi, ale inaczej nie działało logowanie się przez FB, więc dodałem i dla Twittera). Dodałem case w OAuthUserProvider. Zaktualizowałem encję i zaktualizowałem DB. Na początku wszystko działało prawidłowo i udało mi się "zalogować" korzystając z Twittera. Jednak nie miałem zaktualizowanej encji i nowy użytkownik nie został dodany do DB. Zaktualizowałem encję, ale od tej pory wszystko się pozypało i przy próbie logowania się przy pomocy twittera wywala mi wyjątek:
No route found for "GET /oauth/login" (from "http://dev.marek.lt/web/app_dev.php/register")
Z facebookiem wszystko jest w porządku, a Twitter nie działa.
routing.yml
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Kolejny dzień nauki sf2…
Mam w bazie danych 2 tablice:
1. article
id | userid | smallimage | largeimage | created | updated
2. article
translations
id | article_id | locale
  • 15
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@mariecziek: bundle to paczki tworzone przez społeczność, jakby pluginy. Jeśli tworzysz swój kod nie musisz go bundlować. Dokumentacja symfony jest 10/10 i jest dokładnie opisane jak możesz napisać własne logowanie, ale fosuserbundle jest już napisany i sprawdzony w dziesiątkach tysięcy projektów.
  • Odpowiedz
@mer: tylko doctrine pobiera całe obiekty i wchodzi do gry orm xd querybuilderem możesz ustalić że ma nie być hydracji i skorzystac z partiali
  • Odpowiedz
Witam mirków.
Znam trochę #php ale teraz muszę się podszkolić z #sf2. Chcę zrobić logowanie się na stronę. Korzystając z cookbook zrobiłem rejestrację użytkownika, teraz chcę zrobić logowanie. Korzystam z tego:http://symfony.com/doc/current/cookbook/security/form_login_setup.html
Ale po wprowadzeniu danych logowania się i wysłaniu ich otrzymuję błąd:

The controller must return a response (null given). Did you forget to add a return statement somewhere in your controller?

Nie rozumiem ocb, bo
  • 19
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#symfony #symfony2 #doctrine #mysql #postgresql

Taka sprawa... chcę użyć innego niż domyślnego (public) schematu z #pgsql.
Doczytałem, że można to zrobić przez annotacje @Table(schema="schema") ale to jest dosyć "statyczne" rozwiązanie i byłoby lepiej/prościej wprowadzić ten parametr jako parametr w parameters.yml niźli dla każdej encji osobno... (Annotacja w encji mogłaby nadpisywać dla danej encji schemat).
Jak to zrobić
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#sf2 #symfony2 #bazydanych #mysql

używam create builder do stworzenia formularza.
W formularzu muszę przechowywać geolokalizacje, tj latitude i longitude...
Jakiego typu pola powinienem użyć oraz czy te dwie wartości powinienem trzymać razem czy osobno?
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@qwelukasz: to zależy. MySQL ma dopiero od wersji 5.7 potrafić indeksować dane geometryczne przechowywane w InnoDb, więc jeżeli to był Twój plan, to musisz poczekać. Jeżeli natomiast będą to tylko i wyłącznie lat/lng i nie planujesz stosować jakichś super skomplikowanych operacji, możesz użyć do tego celu decimal/float spokojnie ze zwykłym indeksem.
  • Odpowiedz
#sf2 #symfony2
http://symfony.com/doc/current/best_practices/web-assets.html

Czemu w web trzymać assety?
Czy jak trzymam w bundle/resources i zrobię symlinka to jest bardzo źle?
Wydaje mi się, że ten sposób jest łatwiejszy do ogarnięcia w przypadku kilku projektów w jednej instalacji. Dzięki temu mogę np. mieć kilka plików o takiej samej nazwie (np. main.css, sidebar.css, itp)..
chyba że w web zrobię web\MyBoundle\css ale i tak bym grupował ale nie widzę za bardzo
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@qwelukasz: Tak. Ale lepiej skonfiguruj to globalnie, jeżeli chcesz go używać wszędzie. Ten szablon sprawia, że elementy html są dostosowane do bootstrapa (tj. mają odpowiednie klasy). Oprócz tego musisz oczywiście załadować jeszcze bootstrapa na własną rękę.
  • Odpowiedz
Tak. Ale lepiej skonfiguruj to globalnie, jeżeli chcesz go używać wszędzie.


@Damian1998: w sensie skopiować ten fragment kodu do szablonu głównego, po którym dziedziczę szablon strony?
Czy lepiej zrobić to z posiomu app/config/config.yml?
  • Odpowiedz