Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Chcę by user po zalogowaniu był przeniesiony do miejsca gdzie o logowanie go poproszono
Forum PHP.pl > Forum > PHP
Yans
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
tehaha
zapisz do sesji adres url na jakim się znajdował i potem po logowaniu go tam przekieruj
kiler129
Jeszcze prostrza metoda (i lepsza - pozwala nie inicjować sesji bez potrzeby) to kierować do url login.php?dest=prostected-page.php?a=123
Yans
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
thek
I jeszcze inne podejście, nie zawsze skuteczne, ale jednak... Jeśli referer był z Twojej, odeślij go z powrotem winksmiley.jpg
Yans
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
d3ut3r
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.
thek
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.