Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Problem z funkcją header
tomazzi
post
Post #1





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 14.09.2012

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


Probuje stworzyć prosty system logowania. Napotkałem problem: chcę, aby po udanej rejestracji pokazał się komunikat, a po kilku sekundach nastąpiło przekierowanie na stronę logowania. W kodzie wygląda to tak:
Kod
if($log->checkUser()){
                echo "Rejestracja przebiegła pomyślnie. Poczekaj aż system przekieruje Cię na stronę logowania.";
                sleep(5);
                header("Location: log.php");
            }


Problem w tym, że w takiej postaci nie wyświetla się komunikat, wywyołuje się jedynie funkcja sleep(), po czym następuje przekierowanie. Gdy wyrzuce funkcje header komunikat pokazuje się normalnie. Jak można temu zaradzić?

Ten post edytował tomazzi 2.01.2013, 21:36:37
Go to the top of the page
+Quote Post
Pawel_W
post
Post #2





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


wyświetl stronę z komunikatem, a następnie przekieruj za pomocą meta bądź js
Go to the top of the page
+Quote Post
tomazzi
post
Post #3





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 14.09.2012

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


Oba wymienione przez Ciebie sposoby są mi zupełnie nie znane. Mógłbyś nakreślić schemat postępowania?
Go to the top of the page
+Quote Post
Spawnm
post
Post #4





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Wyświetlasz strone html która ma tag meta który przekieruje po 5s.
Go to the top of the page
+Quote Post
tomazzi
post
Post #5





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 14.09.2012

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


Sorry ale nie mam pojęcia jak to zrobić. Jedyny sposób który znam, aby wyświetlić stronę z poziomu php to funkcja header albo składnie heredoc.
Go to the top of the page
+Quote Post
Wazniak96
post
Post #6





Grupa: Zarejestrowani
Postów: 550
Pomógł: 75
Dołączył: 5.06.2012
Skąd: Lębork

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


A takiej znanej stronki jak google.pl nigdy nie używałeś.? Pierwsze co wyświetliło się po wpisaniu "przekierowanie po czasie META" ---> Klik
Go to the top of the page
+Quote Post
tomazzi
post
Post #7





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 14.09.2012

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


Dalej nie wiem jak to zrobić kod, który podałem znajduje się w klasie Registration. Przy rejestracji tworzony jest obiekt tej klasy po pomyślnym dodaniu do bazy nowego użytkownika chcę zrobić przekierowanie. Da się to zrobić z poziomu obiektu przez meta tag?
Go to the top of the page
+Quote Post
Spawnm
post
Post #8





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Tomazzi, masz wstawić jeden tag <meta> do sekcji <head>. Czego tutaj nie ogarniasz?!
Go to the top of the page
+Quote Post
tomazzi
post
Post #9





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 14.09.2012

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


Nie mam sekcji head. Mam oddzielny plik php z klasą registration, w której znajduje się kod który podałem.

Nie rozumiecie mnie. Jak wrzuce tag meta do strony z formularzem rejestracji. Przekierowanie jest automatycznie po x sekundach. Użytkownik musi podać dane do rejestracji, po wpisaniu danych do formularza i kliknięciu "ok" tworzony jest obiekt registration. Jego zadaniem jest wrzucenie danych do bazy i sprawdzenie czy się nie powtarzają jeśli wszystko jest ok, chcę wyświetlić prosty komunikat i przekierować do strony log.php.

Zdaje sobie sprawę, że być może mój system nie jest pisany w sposób książkowy. Pewnie z tąd te nie porozumienia. Prosze o wyrozumiałość jest to moja pierwsza samodzielnie pisana aplikacja. Do tej pory uczyłem się tylko czytając ksiązki i analizując przykłady. Może udzilicie mi jakiś wskazówek jak napisać wzorcowy system logowania?

Ten post edytował tomazzi 3.01.2013, 22:40:55
Go to the top of the page
+Quote Post
mieszkos
post
Post #10





Grupa: Zarejestrowani
Postów: 78
Pomógł: 11
Dołączył: 1.04.2009

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


Nie, po prostu nie skumałeś.
Chodzi o to, że teraz wyświetlasz sam komunikat nie? A im chodzi o to byś po prostu zamiast tego

  1. if($log->checkUser()){
  2. echo "Rejestracja przebiegła pomyślnie. Poczekaj aż system przekieruje Cię na stronę logowania.";
  3. sleep(5);
  4. header("Location: log.php");
  5. }


A konkretnie, zamiast tego co jest w Ifie, wczytał tzw "widok", czyli np zrobić sobie funkcję (to taki przykład teraz banalny) np. show_success() w której załadujesz jakiś plik .php w którym będziesz mieć stronke z tym komunikatme twoim ze rejestracja przebiegła pomyślnie itd, i w tym pliku jescze w skecji meta dać właśnie te przekierowanie META (IMG:style_emoticons/default/smile.gif) i ktoś zobaczy komunikat a po 5 sek go przewali na stronę jaką chcesz.
Go to the top of the page
+Quote Post
mokry
post
Post #11





Grupa: Zarejestrowani
Postów: 374
Pomógł: 23
Dołączył: 3.06.2006
Skąd: Katowice

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


  1. echo 'Rejestracja przebiegła pomyślnie. Poczekaj aż system przekieruje Cię na stronę logowania. <meta http-equiv="refresh" content="5;url=log.php" /> '
Go to the top of the page
+Quote Post
tomazzi
post
Post #12





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 14.09.2012

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


'Mokry' doklejenie na końcu komunikatu tag meta działa wzorowo.

Cytat(mieszkos @ 3.01.2013, 23:54:14 ) *
Nie, po prostu nie skumałeś.
Chodzi o to, że teraz wyświetlasz sam komunikat nie? A im chodzi o to byś po prostu zamiast tego

  1. if($log->checkUser()){
  2. echo "Rejestracja przebiegła pomyślnie. Poczekaj aż system przekieruje Cię na stronę logowania.";
  3. sleep(5);
  4. header("Location: log.php");
  5. }


A konkretnie, zamiast tego co jest w Ifie, wczytał tzw "widok", czyli np zrobić sobie funkcję (to taki przykład teraz banalny) np. show_success() w której załadujesz jakiś plik .php w którym będziesz mieć stronke z tym komunikatme twoim ze rejestracja przebiegła pomyślnie itd, i w tym pliku jescze w skecji meta dać właśnie te przekierowanie META (IMG:style_emoticons/default/smile.gif) i ktoś zobaczy komunikat a po 5 sek go przewali na stronę jaką chcesz.


Wszystko jasne tylko nie wiem jak technicznie wykonać "wczytanie widoku". Przychodzi mi tylko na myśl funkcja header. Pomyślałem teraz, że może warto byłoby zrobić funkcję która pobierałaby zmienną z komunikatem a następnie wyświatlała stronę podaną stronę html z komunikatem ze zmienne, byłoby to chyba bardziej eleganckie rozwiązanie. Da się coś takiego zrobić?

Ten post edytował tomazzi 4.01.2013, 17:45:06
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 24.08.2025 - 03:35