| -gosc_mufan- |
Post
#1
|
|
Goście |
Witam mam problem.Dopiero zaczynam zabawe z php a juz musze napisac system logowania oparty mysql. Czy moglby mi ktos pomoc dokladnie chodzi o to z na stronce sa miejsca na login i haslo i po kliknieciu na loguj powino sprawdzac czy taki user jest w bazie danych. Dziekuje za szybka odpowiedz:)
---------------------- Pozwoliłem sobie zmienić nazwę wątku : ) --- ~strife |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Przyjaciele php.pl Postów: 2 605 Pomógł: 96 Dołączył: 22.10.2004 Skąd: UK Ostrzeżenie: (0%)
|
Witam,
Napiszę Ci dość szybko czym jest logowanie w php i jak przebiega, ponieważ temat logowania był wałkowany i jest bardzo długo, więc sam rozumiesz, że pisać n'ty raz to samo robi się z oporem ( przynajmniej mi ). No ale przejdźmy do rzeczy, zakładam, że pewne podstawy z php znasz takie jak tworzenie warunków, pętli, zmiennych. Jeżeli już masz ten zasób wiedzy, to przejdźmy do napisania samego skryptu logowania. Na początku tworzymy plik o dowolnej nazwie, u mnie będzie się nazywał login.php, ten plik umożliwi stworzenie tzw. zmiennej sesyjnej odpowiadającej za zalogowanie się na stronę. O zmiennach sesyjnych możesz poczytać w manualu w dziale zmienne predefiniowane. Oczywiście, samo tworzenie zmiennej sesyjnej nie wystarczy, jest potrzebny też formularz, który umożliwi nam dowolne logowanie. Przykładowy formularz może wyglądać w ten sposób: Oczywiście ten formularz umieszczamy w naszym pliku, bądź innym wzkazującym na login.php ( action ). Gdy już mamy w takiej postaci nasz plik, przystępujemy do obrobienia go. Tak więc tworzymy warunek, który nam sprawdzi czy dane przesłane w formularzu są prawidłowe.
Przy tak skonstruowanym kodzie, i poprawnym wpisaniu danych zostanie dodane zmienna sesyjna o nazwie 'auth'. Zmienne sesyjne są widoczne w każdym miejscu ponieważ ich zasięg jest globalny i tutaj też zapraszam do zapoznania się z manual'em i rozdziałem o zmiennych predefiniowanych. Następnie posiadając taką zmienną możemy w każdym miejscu sprawdzić, czy użytkownik jest zalogowany, czyli sprawdzamy czy ta zmienna istnieje.
Wszystko wydaje, się proste, ale kod który napisałem, może nie działać.. Dlaczego? W kodzie, który zaprezentowałem nie ma nigdzie zdefiniowanego startu sesji, więc tworzenie zmiennych sesyjnych i ich sprawdzanie nie ma najmniejszego sensu. Na początku kodu musi być:
Wtedy, możemy dowolnie operować na sesjach. Wszystko pięknie, ale czegoś tu brakuje... a co jeśli będziemy chcieli się wylogować, tutaj z pomocą przychodzi session_destroy" title="Zobacz w manualu PHP" target="_manual, bądź unset" title="Zobacz w manualu PHP" target="_manual, z tą różnicą, że to pierwsze usunie wszystkie zmienne sesyjne, a drugie tylko wybraną:
To by było Tyle, jeżeli chodzi o samo logowanie, teraz trochę o mysql. Posłużę się do tego kodem, który już wcześniej napisałem na tym forum:
Oczywiście do takiego kodu można się przyczepić o kwestię bezpieczeństwa ( sql injection ), ale żeby nie przyciemniać tego przykładu odwołuję Cię do przyczepionego tematu sql injection na forum -> php. A więc przeanalizujmy powyższy kod, użytkownik wpisuje swój login i hasło, następnie wykonujemy zapytanie, które sprawdza czy dany użytkownik istnieje, jeżeli tak sprawdzamy hasło, i miejscu gdzie pojawia się informacja o poprawnym zalogwaniu, możemy dodać naszą zmienną sesyjną. Mam nadzieję, że już mniej więcej wiesz o co chodzi z logowaniem. Kod pisałem z palca, więc mogą być małe błędy. W razie pytań czy wątpliwości, pisz na forum. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Pozdrawiam! |
|
|
|
gosc_mufan [php] System logowania i sesje 21.07.2006, 11:00:34
Cysiaczek Skoro musisz napisać, to znaczy, że to k... 21.07.2006, 11:08:04
adi2005 Jest masa ksiazek na ten temat. Mozna je już kupić... 21.07.2006, 11:31:34
scanner @adi2005: jeszcze jedna taka odpowiedz i zaliczysz... 21.07.2006, 13:45:16
adi2005 @scanner: Oki sorki ale jednak chciałbym wied... 21.07.2006, 14:03:45
gosc_mufan Tak probowalem sie bawic z gotowcami ale mi nie sz... 21.07.2006, 15:19:54
acztery formularz wysyla dane login i password do naszego ... 21.07.2006, 15:41:03
robos85 Zrobiłem takie pliki:
logowanie.html:
[HTML] pobie... 20.03.2007, 21:41:27
kwiateusz bezpośrednio do plik.php? to czego oczekujesz że z... 20.03.2007, 21:56:22
robos85 ok działa oto moje pliki:
logowanie.html pomijam,
... 20.03.2007, 22:30:44 
shaolin33 Cytat(robos85 @ 20.03.2007, 22:30:44 ... 19.03.2013, 09:44:46
kwiateusz np. zamiast
[PHP] pobierz, plaintext <?phpprint... 20.03.2007, 22:39:22
robos85 kurde rzeczywiście ;p
Ale to wynik tego że nie śpi... 20.03.2007, 22:44:49
kwiateusz wystarczy manula przejrzeć...
session_id" title="Z... 20.03.2007, 22:47:05
robos85 zrobiłem taki plik:
wybór.html
[HTML] pobier... 20.03.2007, 23:32:15
Cienki1980 Jeżeli chcesz korzystać z kodu PHP musisz umieszcz... 20.03.2007, 23:38:41
robos85 yhm ok będę to robił, bo myślałem że jakoś da radę... 20.03.2007, 23:43:37
kwiateusz da o ile możesz używać plików htacc... 21.03.2007, 00:51:44
idas Yo!
Mam pytanie: przedstawione tutaj kody do l... 26.03.2007, 00:16:25 
strife Cytat(idas @ 26.03.2007, 01:16:25 ) Y... 26.03.2007, 00:49:37
idas Wlasnie sie przekonalem, ze zmienne sesyjne u mnie... 26.03.2007, 15:41:34 
strife Cytat(idas @ 26.03.2007, 16:41:34 ) W... 26.03.2007, 18:14:10
idas Yo!
Jednak sesje dzialaja. Jednak mam pewne py... 26.03.2007, 20:05:51
strife A jakich rezultatów się spodziewasz, musi działać.... 26.03.2007, 21:04:46
idas HeHe nie no o session_start(); to pamietalem;)
Juz... 28.03.2007, 12:27:15 
strife Cytat(idas @ 28.03.2007, 13:27:15 ) z... 28.03.2007, 16:14:17
idas Dzieki, poczytam
A mam jeszcze jedno pytanie:
cz... 29.03.2007, 15:13:19 
strife Cytat(idas @ 29.03.2007, 16:13:19 ) D... 29.03.2007, 16:18:40
idas Dzieki
Ja zrobilem u siebie logowanie tak:
jesli... 29.03.2007, 22:33:48
super_e107 Sorki że odkopuje, ale nie ma sensu pisać nowego t... 31.12.2007, 14:48:00
Dex19 Witam,
tym razem ja odkopię Jestem (php przedszko... 26.01.2011, 18:13:05
Noidea Na większości (jak nie wszystkich) hostingach wspó... 26.01.2011, 18:25:26
Dex19 bardzo dziękuję za odpowiedź
CytatOpcja trzecia j... 26.01.2011, 19:10:52 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 15:27 |