![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 159 Pomógł: 5 Dołączył: 31.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Planuję stworzyć mechanizm który zapewni mi działanie podobne jak na allegro.pl czy oferia.pl. Dla przykładu gdy składam zamówienie na allegro albo ofertę na oferii, a nie jestem zalogowany, strona automatycznie przenosi mnie do formularza logowania. Po zalogowaniu ta konkretna rzecz jest dodawana (kup teraz lub wysłanie swojej oferty). Chyba to dobrze opisałem. Pytanie: Jak zrobić samodzielnie taki mechanizm? Mój pomysł: wziąć ID sesji które jest wiadomo unikatowe dla każdej osoby, do niej przypisać URL i zaszyfrować obustronnie (tak by potem rozszyfrować gdzie ma wrócić i co zrobić). Dane wysłane do formularza wstawić do pliku albo bazy z tym unikatowym ID, a po powrocie na strone po zalogowaniu wykonać już automatycznie formularz tak by sie jakaś interakcja wykonała... Troche pomieszałem.... Mój problem jest czysto merytoryczny i chodzi o pomoc, podpowiedź jak to według was powinno być zrobione. Oczywiście jeśli ktoś zna gotowe rozwiązania tego typu będę wdzięczny za informacje Pozdrawiam! -------------------- |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 3.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
A może w GET'cie np zapisać nr aukcji i akcje jaką ma wykonać i po zalogowaniu przechwycić?
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 159 Pomógł: 5 Dołączył: 31.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Pomysł jest taki:
1. Stworzenie identyfikatora akcji np. wysłanie komentarza. Identyfikator będzie zawierać zakodowaną informacje obustronnie: a) URL z którego formularz był wywoływany ![]() c) Aktualny czas (tak by odrzucać formularze które mają za stare ![]() d) Identyfikator sesji, I dla przykładu może to wyglądać np. tak: aHR0cDovL3d3dy5iZXRhLmVyb2JheS5wbC9wcm9kdWt0eS8xNDg0L1N1a2llbmthX05JR0hUX1F1ZWVu X1BBU1NJT04uaHRtbA,, 2. Pola z formularza i wartości nadane przez użytkownika będą zapamiętane względem właśnie tego identyfikatora do np. pliku php o dźwięcznej nazwie: aHR0cDovL3d3dy5iZXRhLmVyb2JheS5wbC9wcm9kdWt0eS8xNDg0L1N1a2llbmthX05JR0hUX1F1ZWVu X1BBU1NJT04uaHRtbA,,.php ze zwykłymi wartościami w postaci array, czyli:
No i po zalogowaniu funkcja sprawdzi czy plik aHR0cDovL3d3dy5iZXRhLmVyb2JheS5wbC9wcm9kdWt0eS8xNDg0L1N1a2llbmthX05JR0hUX1F1ZWVu X1BBU1NJT04uaHRtbA,,.php istnieje czy też nie (wartość aHR0cDovL3d3dy5iZXRhLmVyb2JheS5wbC9wcm9kdWt0eS8xNDg0L1N1a2llbmthX05JR0hUX1F1ZWVu X1BBU1NJT04uaHRtbA,, będzie podana w adresie i przekazana GET) i doda się albo sie nie doda coś co tam ma sie wykonać. Dobre rozwiązanie? -------------------- |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 3.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
A może zrobić tak:
1. Klikamy, aby coś zrobić np. kupić 2. Robimy przekierowanie na stronę z zakończeniem kupna 3. Sprawdzamy czy ktoś jest zalogowany: TAK -> kontynuujemy dalsze operacje NIE -> przechodzimy aby zalogować -> pkt 3 A jak to zrobić? Można np do sesji wsadzić id kupna (pkt 1) czy czegoś tam, bo zmienne $_SESSION siedzą cały czas do zzerowania i do zniszczenia sesji. Sprawdzić czy ktoś jest zalogowany (pkt 3) i podjąć odpowiednie środki. Zawsze możesz sprawdzić sesje + ciastka jako takie zabezpieczenie by nic nie zmieniać, a jak ktoś coś zmieni to wywali błąd. Ten post edytował zonkerman 23.07.2010, 19:59:57 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 159 Pomógł: 5 Dołączył: 31.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
wyposażyłem moje rozwiązanie w taki mechanizm. Dane zapisałem do sesji i jeśli ktoś jest niezalogowany przenosi na formularz logowania i nadaje dodatkowy zahaszowany parametr (czego oczy nie widzą to ludzie sie nie pytają o co chodzi
![]() Potem zapodam linka... -------------------- |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 782 Pomógł: 153 Dołączył: 21.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Nie prościej tak?:
To wydaje mi się bardziej rozsądne od zapisywania danych w Sesji przed zalogowaniem. -------------------- Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]! |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 159 Pomógł: 5 Dołączył: 31.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
bez znaczenia do czego to będzie zapisywane. Co jeśli np. zostaną otwarte 2 produkty i z obu zostaną wysłane opinie. W obu zostaną też wyświetlone pola do logowania...
Wtedy bez dobrze przemyślanego mechanizmu może się komentarz pojawić w złym miejscu... -------------------- |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 782 Pomógł: 153 Dołączył: 21.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Niby jak? Możesz zapisać w ciastku HTTP_REFERER i w ten sposób ocenić z którym URL jest związane dane ciastko (nie do końca jestem pewny czy ciastko nie jest związane z konkretną kartą w przeglądarce, tak mi mówi intuicja, ale głowy nie dam). A jeśli akcja została wykonana to usuwamy ciacho i tyle. Dodatkowo możemy się zabezpieczyć jakimś mechanizmem sprawdzającym wpisy pod kątem duplikatów.
-------------------- Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]! |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 159 Pomógł: 5 Dołączył: 31.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Ok gotowe!
Zapraszam do testów i ewentualnych uwag: Przykładowy komentarz Założyłem testowego usera... Login: test Hasło: 123456 Ciacho jest przypisane do strony i przeglądarki - bez względu na to czy odpalisz ów stronę w jednej czy wielu kartach to i tak w każdej z nich będziesz mieć dostęp do tego ciasteczka... -------------------- |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 782 Pomógł: 153 Dołączył: 21.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Jak ci działa - no problem. Po prostu rozwiązanie z ciachem wydaje mi się bardziej eleganckie - co do przywiązania to po masz hasz żeby ciacho zweryfikować (gdyby ktoś podłożył spreparowane)
-------------------- Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]! |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 309 Pomógł: 56 Dołączył: 3.11.2006 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
BTW.
Validator HTML 86 Errors, 104 warning(s) ![]() @DOWN No, ale i tak liczba dosyć spora. Ten post edytował muk4 25.07.2010, 21:20:41 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 782 Pomógł: 153 Dołączył: 21.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Tak to bywa jak się nie stosuje do tworzenia HTMLa odpowiednich bibliotek (np. DOMDocument)
![]() -------------------- Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]! |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 159 Pomógł: 5 Dołączył: 31.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
walidacją sie jeszcze nie zajmowałem - póki co - więc sama strona jeszcze nie jest do oceny
![]() -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 11:17 |