![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 108 Pomógł: 0 Dołączył: 7.05.2004 Skąd: Jelenia Góra Ostrzeżenie: (0%) ![]() ![]() |
Witam,
ja się wiążę z takim problemem że mam zrobione logowanie na stronie na sesjach. Użytkownik wpisuje login, hasło, te dane przechodzą do funkcji logowania, w tej funkcji pobierane są odpowiednie dane z bazy i jeżeli jest odpowedni login i hasło do niego to następuje taka jakby autoryzacja - tzn. zmienna $_SESSION["USER_AUTH"] przybiera wartość true, później zmienna $_SESSION["USER_LOGIN"] przybiera wartość loginu danego użytkownika. I teraz użytkownik widzi na ekranie link który przekierowuje go do pewnej podstrony, na której to wywoływana jest funkcja która na podstawie tej zmiennej $_SESSION["USER_LOGIN"] pobiera z bazy resztę danych. Jak wiadomo takie rozwiązanie, że użytkownik musi indywidualnie kliknąć na link za bardzo mu nie sprzyja. Więc zdecydowałem się na przekierowanie - tzn: Kod <meta http-equiv="Refresh" content="0; URL=index.php?page=siedziba"> Problem jest tego typu że na ie u mnie wszystko działa w pożądku(ie z sp2). Znajomi mówią jednak że u nich na ie poprzez to przekierowanie logowanie nie jest przeprowadzane poprawnie (to jest ie z sp1). Poprzez zwykły link do tej strony wszystko działa w pożądku. Z moich obserwacji wynika że poprzez przekierowanie nie są przekazywane zmienne globalne na niektórych wersjach przeglądarek. Czy jest na to jakaś rada? Pozdrawiam. -------------------- ![]() |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 0 Dołączył: 4.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
Hej,
Ja zawsze korzystam z takiego przekierowania w php: Kod header ("Location: www.costam.pl"); exit; Niestety musi być na samym początku strony... to znacz musi zostać wykonane przed jakimkolwiek wysłaniem danych do przeglarki. POZDRAWIAM who? |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
Cytat Niestety musi być na samym początku strony... to znacz musi zostać wykonane przed jakimkolwiek wysłaniem danych do przeglarki. Dlaczego niestety? ![]() ![]() Ja mam to robione w ten sposób, że w skrypcie logowania mam (gdy użytkownik się autoryzuje), zapytanie, które wybiera z bazy danych na jaką stronę przeglądarka ma się przekierować:
gdzie $USER['Strona']) to strona na którą należy przekierować danego użytkownika. -------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 108 Pomógł: 0 Dołączył: 7.05.2004 Skąd: Jelenia Góra Ostrzeżenie: (0%) ![]() ![]() |
Problem w tym że ja musze wysłać te zmienne do przeglądarki :/
-------------------- ![]() |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
Jakie zmienne? Trzymaj je w sesjach.
-------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 258 Pomógł: 16 Dołączył: 21.09.2004 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
-------------------- -------------
------ |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 108 Pomógł: 0 Dołączył: 7.05.2004 Skąd: Jelenia Góra Ostrzeżenie: (0%) ![]() ![]() |
ok, no więc strona logowania wygląda następująco:
Ale header nie działa :/ -------------------- ![]() |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 0 Dołączył: 4.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
Cytat(MagnuM @ 2005-09-28 16:54:49) Ale header nie działa :/ Zapomniałeś o "exit;" na końcu. POZDRAWIAM, who? |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 108 Pomógł: 0 Dołączył: 7.05.2004 Skąd: Jelenia Góra Ostrzeżenie: (0%) ![]() ![]() |
No więc header dalej nie działa, po wielu dziwnych próbach.
W wiązku z tym zacząłem próbować z javascriptem. Mam takie pytanie. Czy instrukcja location.reload(); koniecznie musi pokazywać jakieś dziwne komunikaty przy wywołaniu? Nie może się odrazu wywoływać odswiezenie? Jest na to jakoś sposób? -------------------- ![]() |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
Cytat(who? @ 2005-09-28 20:38:04) Cytat(MagnuM @ 2005-09-28 16:54:49) Ale header nie działa :/ Zapomniałeś o "exit;" na końcu. POZDRAWIAM, who? Wcale nie musi być exit, ale za to powinno być na samym początkusession_start(). Czy to na pewno cały kod? Co do location.reload(); to zapewne wyświetla się okienko, że strona wygasła, jest to spowodowane tym, że wracasz do strony do której dane zostały wysłane metodą POST, może jak byś spróbował GETem to by pomogło? -------------------- |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 108 Pomógł: 0 Dołączył: 7.05.2004 Skąd: Jelenia Góra Ostrzeżenie: (0%) ![]() ![]() |
Kiepska sprawa przekazywać login i hasło w URL-u :/ A ja dalej nie mogę soie poradzić.
-------------------- ![]() |
|
|
![]()
Post
#12
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 258 Pomógł: 16 Dołączył: 21.09.2004 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
Nie tak:
tylko tak:
to zasadnicza różnica jednego ampersanda ![]() -------------------- -------------
------ |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 108 Pomógł: 0 Dołączył: 7.05.2004 Skąd: Jelenia Góra Ostrzeżenie: (0%) ![]() ![]() |
Skoro żaden ze sposobów tu wymienionych nie przyniósł zamierzonego skutku, opiszę sprawę dokładniej.
index.php pliczek w którym jest wywoływana funkcja session_start(), tu includowane są wszelkie pliki: pliki z funkcjami, lewe menu, prawe oraz środek(który jest zamienny, zaleznie od $_GET['page']). login.php formularz do logowania login2.php plik w którym wywoływana jest funkcja logowania funkcja logowania najpierw sprawdzane są wszystkie warunki, czy login pasuje do hasła i inne pierdoły, jeżeli wszystkie warunki są spełnione to dochodzi do logowania i wtedy wywoływany jest następujący kod:
Jak widać w tym miejscu następuje przekierowanie do index.php, ze srodkiem siedziba.php. W tym czasie w index.php wywoływana jest funkcja user_dane(), która na podstawie zmiennej $_SESSION["USER_LOGIN"] pobiera z bazy wszystkie dane dotyczące danego użytkownika. Później includowana jest ta strona siedziba.php która wyświetla te dane odrazu. Problem jest tego typu że na moim komputerze działa to znakomicie. Normalnie się loguję wypełniając formularz, pokazuje mi się informacja że trwa przekierowanie i za chwile pojawia mi się strona siedziba.php z danymi dotyczącymi mojego konta. U moich znajomych zaś występuje problem taki, jakby nie wykonywana była funkcja user_dane(). Dane nie są poprawnie wyświetlane na stronie :/ Czyli drogą dedukcji możliwe że zmienna $_SESSION["USER_LOGIN"] nie jest przesyłana pomiędzy stronami. Problem rozwiązuje się jeżeli ręcznie klikną na link przekierowujący do tej strony, a nie będą czekać na przekierowanie. Ma ktoś jakiś pomysł? Ten post edytował MagnuM 1.10.2005, 13:32:17 -------------------- ![]() |
|
|
![]()
Post
#14
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 605 Pomógł: 96 Dołączył: 22.10.2004 Skąd: UK Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Wydaje mi się że na stronie logowania nie masz session_start" title="Zobacz w manualu php" target="_manual dlatego nie jest przekazywana dalej zmienna sesyjna. Jeśli myślisz że ta zmienna nie jest przekazywana zrób mały debug, na końcu umieść np.
I zobacz czy jest.. Natomiast jeśli nie działa Ci header" title="Zobacz w manualu php" target="_manual i nie wyskakuje Ci żaden błąd to myślę że masz wyłączone raportowanie błędów. error_reporting" title="Zobacz w manualu php" target="_manual Pozdrawiam! -------------------- Najczęstsze błędy | Jak poprawnie zadać pytanie? | Serwer PHP - od czego zacząć?
SQL Injection | Hashowanie haseł | Jak działają sesje, przykłady ___ The world is yours ... |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 108 Pomógł: 0 Dołączył: 7.05.2004 Skąd: Jelenia Góra Ostrzeżenie: (0%) ![]() ![]() |
Dodałem wszędzie session_start i problem jest u innych, a u mnie działa prawidłowo
![]() -------------------- ![]() |
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 315 Pomógł: 1 Dołączył: 6.08.2003 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
Chwila. Skrypt testujesz na swoim kompie, prawda? Ale Twoi znajomi też wchodzą na Twój komp jako na serwer, czy wysyłasz skrypty na jakiś hosting?
|
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 108 Pomógł: 0 Dołączył: 7.05.2004 Skąd: Jelenia Góra Ostrzeżenie: (0%) ![]() ![]() |
Wysyłam na serwer.
-------------------- ![]() |
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 315 Pomógł: 1 Dołączył: 6.08.2003 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
No i wchodziłeś na ten server żeby sprawdzić czy to dziala, czy tylko u siebie na kompie sprawdzasz?
|
|
|
![]()
Post
#19
|
|
![]() Grupa: Zarejestrowani Postów: 108 Pomógł: 0 Dołączył: 7.05.2004 Skąd: Jelenia Góra Ostrzeżenie: (0%) ![]() ![]() |
Jasne ze na ten serwer ;-)
-------------------- ![]() |
|
|
![]()
Post
#20
|
|
![]() Grupa: Zarejestrowani Postów: 43 Pomógł: 0 Dołączył: 5.05.2003 Ostrzeżenie: (0%) ![]() ![]() |
witam,
moze oni maja jakies specyficzne ustawienia zabezpieczen ?
inne pliki sprawdzaja pozniej wartosc tej zmiennej i to wszytsko, dziala wszedzie -------------------- Pozdrawiam Bartosz
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 17:56 |