Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Chcę by user po zalogowaniu był przeniesiony do miejsca gdzie o logowanie go poproszono
Yans
post
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 16.01.2011

Ostrzeżenie: (0%)
-----


Witajcie,

Strona powstaje na MySQL i Smartach.
Mam taki problem, że gdy user zechce zobaczyć na stronie coś co jest tylko dla zalogowanych, strona go przeniesie do podstrony logowania - ale gdy się zaloguje chciałbym by strona przeniosła go do adresu, który nie został mu pokazany bo zobaczył logowanie [a nie cofała do strony głównej jak obecnie].

Jak to rozwiązać?
Zaznaczam, że strona powstaje z wykorzystaniem Smartów.

Pozdrawiam! Yans
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
tehaha
post
Post #2





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


zapisz do sesji adres url na jakim się znajdował i potem po logowaniu go tam przekieruj
Go to the top of the page
+Quote Post
kiler129
post
Post #3





Grupa: Zarejestrowani
Postów: 566
Pomógł: 35
Dołączył: 21.06.2006

Ostrzeżenie: (0%)
-----


Jeszcze prostrza metoda (i lepsza - pozwala nie inicjować sesji bez potrzeby) to kierować do url login.php?dest=prostected-page.php?a=123


--------------------
flexiCMS v2 [|||||||+--] 75% done
Go to the top of the page
+Quote Post
Yans
post
Post #4





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 16.01.2011

Ostrzeżenie: (0%)
-----


Cytat(tehaha @ 24.01.2011, 00:11:45 ) *
zapisz do sesji adres url na jakim się znajdował i potem po logowaniu go tam przekieruj


ok
jestem niezalogowany - link znajduje sie w pliku .tpl [warstwa prezentacyjna] do pliku np. www.adresstrony.pl/firma/dodaj/ - ponieważ jestem niezalogowany od razu wrzuci mnie do www.adresstrony.pl/logowanie
Czyli tak na prawde gdy wchodzę na bieżacą stronę powinienem zapamiętać jej adres [tylko jak?] a potem przy otwarciu kolejnej zapisać tej kolejnej adres jako 'bieżącej' a adres poprzedniej przenieść pod inną zmienną w sesji [biezaca_minus_jeden]

Jaką funkcją mogę pobrać adres bieżący strony jaką mam otwartą?
Pamiętajcie proszę, że stosuję Smarty
Go to the top of the page
+Quote Post
thek
post
Post #5





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




I jeszcze inne podejście, nie zawsze skuteczne, ale jednak... Jeśli referer był z Twojej, odeślij go z powrotem winksmiley.jpg


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
Yans
post
Post #6





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 16.01.2011

Ostrzeżenie: (0%)
-----


ok ale musze tego refferera jakoś zanotować i pytanie jak - po ogólny koncept w głowie mam smile.gif ale brak mi umiejętności technicznych, dlatego Was Pytam smile.gif
Go to the top of the page
+Quote Post
d3ut3r
post
Post #7





Grupa: Zarejestrowani
Postów: 709
Pomógł: 176
Dołączył: 24.10.2010

Ostrzeżenie: (0%)
-----


przed podjęciem decyzji o przerzuceniu do logowania zapisz sobie jakie było zapytanie do serwera coś takiego:

  1.  
  2. function curPageURL() {
  3. //funkcja zwraca aktualny adres strony.
  4. $pageURL = 'http';
  5. if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
  6. $pageURL .= "://";
  7. if ($_SERVER["SERVER_PORT"] != "80") {
  8. $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
  9. } else {
  10. $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
  11. }
  12. return $pageURL;
  13. }
  14.  
  15. if (!$user->id) {
  16. //jeżeli user nie zalogowany
  17. $ret=base64_encode(curPageURL());
  18. redirect_to("/logowanie?ret=$ret");
  19. }


w momencie logowania sprawdzasz czy jest ustawiona zmienna $_GET['ret'] jeżeli tak to dekodujesz ją i odsyłasz usera pod ten adres. Przykład całkiem pisany na szybko trzeba go dostosować do własnego frameworka itp.


--------------------
http://d3ut3r.wordpress.com/ | mysql_* jest przestarzałe UŻYWAJ PDO!
Go to the top of the page
+Quote Post
thek
post
Post #8





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Sposobów jest kilka... Możesz pchnąć to jako zmienną $_GET, ukryć w zmiennych $_SESSION albo wrzucić jako pole hidden formularza. W końcu i tak wypełniasz formularz oraz klikasz submit. Jedno pole w te czy tamtą stronę nic nie zmieni.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 18:37