![]() |
![]() |
![]()
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: 607 Pomógł: 23 Dołączył: 8.09.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
jest takie bajeczne urządzenie jak Szukaj, oraz Google....
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 10.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
dobra, to inaczej.
Mam plik: tekst.tpl
i dolaczony w nim formularz do logowania, ktory przedstawia sie nastepujaco: form_log.php
formularz odwoluje sie do skryptu: loguj.php
Wszystko jest fajnie bo znajduje uzytkownika i go loguje, nadaje numer sesji. Problem w tym, ze wywala mi powitanie na nowej stronie, a chce zeby powitanie zastepowalo formularz. Naprawde nie wiem jak to zrobic. Jak wrzucam po session_start(); header ("Location: main.php"); to mi wyskakuje strona glowna, ale z formularzem (uzytkownik jest zalogowany, ma numer sesji) tylko caly czas jest formularz, a nie powitanie. Pytanie, czy dobrze, ze kombinuje w pliku loguj.php, czy wogole zabralem sie do tego ze zlej strony? |
|
|
![]()
Post
#4
|
|
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: 22.08.2025 - 22:34 |