![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 10.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam taki problem. Pisze forum w php z wykorzystaniem mysql'a i utknalem w miejscu autoryzacji. Otoz, udalo mi sie wkoncu zrobic skrypty do logowania i rejestracji uzytkownikow i teraz mam problem jak zrobic, zeby po kliknieciu w przycisk "zaloguj" zamiast formularza do logowania pojawilo sie np. "witaj xxx". Mam dwa pliki do autoryzacji i jeden to zwykly formularz, a drugi skrypt (loguj.php) do sprawdzania danych w bazie. Wszystko jest ok, wyskakuje powitanie i ew. bledy, ale na nowej stronie, czyli nastepuje przekierowanie do skryptu obslugujacego logowanie. Strona glowna to trzy includowane pliki naglowek.tpl, tekst.tpl (gdzie jest includowany formularz form_log.php) i stopka.tpl. Powiem szczerze, ze juz powoli sie poddaje, bo nie moge wymyslec jak zrobic, zeby nie pisac kolejnych stron dla zalogowanych i niezalogowanych. Pomysl jest taki, ze zalogowany moze pisac i odpowiadac na posty, a niezalogowany tylko czytac. Narazie wymyslilem zeby zrobic inna strone dla zalogowanych (z linkami do pisania nowego posta i do odpowiadania), ale moze da sie to zrobic inaczej (linki caly czas sa widoczne, ale po kliknieciu przez niezalogowanego wyskakuje komunikat "Jezeli chcesz napisac nowy temat...... itd")? Formularz i skrypt znajdziecie tu. Pozdrawiam, Bibop |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 13.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
Błąd znajduje się w pliku form_log.php. Niezależnie czy jesteś zalogowany czy nie wyświtla on formularz logowania.
Przykład rozwiązania: dodaj na początku plików tekst.tpl, loguj.php:
następnie dodaj zmienną sesyjną przetrzymującą wartość zmiennej $login w pliku loguj.php:
teraz zmodyfikuj plik form_log.php:
końcowa faza to modyfikacja wylogowania musisz zmienic nazwe form_wyloguj.php na wyloguj.php i wypełnić jego zawartość mniej więcej tak:
Pamiętaj że każdy plik php odpalany bezpośrednio przez przeglądarke musi miec na początku:
żeby działał mechanizm sesji. Każdy plik którego "inkludujesz" nie powinien mieć tego startu sesji. Na stronach w serwisie na początku weryfikujesz stan zmiennej sesyjnej $_SESSION['userid'] i jesli jest ustawiona zezwalasz na działania a jesli nie ustawiona blokujesz działania. Aha i ostatnia rzecz w pliku loguj.php pozmieniaj:
na
gdzie tekst.tpl to główna strona. Pozdrawiam. (IMG:http://forum.php.pl/uwaga.gif) poprawiam --- nospor |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 13:28 |