![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 415 Pomógł: 0 Dołączył: 24.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
Witam.
Mam problem z systemem logowania. Gdy jest on zewnętrzny (sam system logowania bez zagnieżdżania w stronę) wszystko działa. Natomiast ja wkładam go w stronę www nie działa. Klikam na zakładkę strefa użytkownika - wpisuje dane i nic - pisze mi, że jestem nie zalogowany, natomiast gdy drugi raz kliknę na strefa użytkownika i wpiszę dane - zaloguję się bez problemu - co jest nie tak? tak wygląda strona główna:
tak wygląda plik zalogowany.php:
a tak wygląda plik strefa.php:
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 9.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
W 2 kodzie pasowało by dopisać na początku <?php
I jeszcze mała edycja 1 kodu:
Ten post edytował 1937817 10.03.2010, 14:26:49 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Skoro w $_GET['go'] przekazujesz nazwę podstrony, to dlaczego masz
Powinno być: No i gdzie jest sam proces logowania? No i jeszcze w pliku strefa.php sprawdzenie zmiennych $_POST['konto'] i $_POST['password'] oraz samo logowanie powinno się odbyć jeszcze zanim wyślesz do przeglądarki formularz, czyli przed: Oczywiście jeżeli użytkownik nie został jeszcze zalogowany. Podałeś za mało kodu i trudno się domyślić, co jest nie tak. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 415 Pomógł: 0 Dołączył: 24.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
Problem leży na pewno po stronie pliku zalogowany.php, gdy "//if (isset($_SESSION['user_id']) and isset($_SESSION['login']))" jest wyłączone - wszystko działa prawidłowo, tylko nie pisze, jaki user jest zalogowany (Witaj xxx). Natomiast jak to włączę - muszę logować się 2 razy:
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Czy mi się wydaje, czy Ty w każdym pliku rozpoczynasz sesję (session_start())? Nie możesz tak robić, sesję powinieneś rozpocząć tylko raz, najlepiej w pliku index.php.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 415 Pomógł: 0 Dołączył: 24.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 201 Pomógł: 9 Dołączył: 23.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Wyświetl sobie te sesje ($_SESSION['user_id'],$_SESSION['login'])) , zobacz czy coś w nich w ogóle jest.
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 415 Pomógł: 0 Dołączył: 24.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
Nie ma nic w tych sesjach za pierwszym razem jak się loguję...
Jak drugi raz się loguję to już mam dane w tych sesjach. O co może chodzić? |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Wrzuć tutaj skrypt logowania, bo wygląda na to, że tam tkwi problem.
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 415 Pomógł: 0 Dołączył: 24.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
Nie wiem czy przypadkiem tutaj nie tkwi problem bo:
1. <form action="index.php?go=strefa" method="post"> - odnosi się do indexu najpierw 2. w skrypcie logowania to samo w linii: header("Location: $domena"."index.php?go=zalogowany"); Na początku jesk kod html - nie ma nic w php w tym pliku oprócz tego co zamieszczam poniżej sesje php zaczynam na stronie index.php Oto fragment odpowiedzialny za logowanie:
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Z założenia zmienne $_SESSION['user_id'] oraz $_SESSION['login'] nie powinny istnieć, więc po co ten kod:
Powinniśmy raczej zrobić coś takiego: Poza tym użyłbym raczej operatora && zamiast and, ponieważ oba te operatory działają inaczej. W funkcji header() wystarczy podać "Location: index.php?go=zalogowany" . No i pozostaje jeszcze kwestia tego, czy w pliku index.php nie dochodzi gdzieś do modyfikacji zmiennych $_SESSION['user_id'] i $_SESSION['login']. Najlepiej wrzuć tutaj kod całego pliku index.php. |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 415 Pomógł: 0 Dołączył: 24.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
Mortus wszystko działa pięknie - WIELKIE DZIĘKI
![]() A jak zrobić, żeby w sesji też przekazać imie i nazwisko uzytkownika, tak jak jest to zrobione z "loginem" i "id"? Oczywiście pola imie i nazwisko mam w tabeli Ten post edytował cent4 15.03.2010, 14:18:42 |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Zamiast pobierać z bazy danych samo id pobierasz również imię i nazwisko (linia 19)
i przepisujesz do sesji w bloku
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 415 Pomógł: 0 Dołączył: 24.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
mortus You Are The Best - dzienks
![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 10.07.2025 - 09:46 |