Utworzenie witryny opartej na członkostwie wydaje się początkowo trudnym zadaniem. Jeśli kiedykolwiek chciałeś zrobić to sam, ale poddałeś się, gdy zacząłeś myśleć, jak to połączyć, korzystając ze swoich umiejętności PHP, ten artykuł jest dla Ciebie. Przeprowadzimy Cię przez każdy aspekt tworzenia witryny opartej na członkostwie, z bezpieczną strefą członkowską chronioną hasłem.
Cały proces składa się z dwóch dużych części: rejestracji użytkownika i uwierzytelnienia użytkownika. W pierwszej części zajmiemy się tworzeniem formularza rejestracyjnego i przechowywaniem danych w bazie MySQL. W drugiej części utworzymy formularz logowania i za jego pomocą umożliwimy użytkownikom dostęp do bezpiecznego obszaru.
Pobierz kod
Cały kod źródłowy systemu rejestracji/logowania możesz pobrać pod linkiem poniżej:
Konfiguracja i przesyłanie
Plik ReadMe zawiera szczegółowe instrukcje.
Otworzyć źródło\include\membersite_config.php plik w edytorze tekstu i zaktualizuj konfigurację. (Login do bazy danych, nazwa Twojej witryny, adres e-mail itp.).
Prześlij całą zawartość katalogu. Przetestuj rejestr.php, przesyłając formularz.
Formularz rejestracyjny
Aby założyć konto użytkownika, musimy zebrać od użytkownika minimalną ilość informacji. Potrzebujemy jego imienia i nazwiska, adresu e-mail oraz żądanej nazwy użytkownika i hasła. Oczywiście w tym momencie możemy poprosić o więcej informacji, ale długi formularz zawsze zniechęca. Ograniczmy się więc tylko do tych dziedzin.
Oto formularz rejestracyjny:
Mamy więc pola tekstowe na imię i nazwisko, adres e-mail i hasło. Pamiętaj, że używamy dla lepszej użyteczności.
Walidacja formularza
W tym momencie warto umieścić jakiś kod weryfikacyjny formularza, dzięki czemu upewnimy się, że posiadamy wszystkie dane potrzebne do założenia konta użytkownika. Musimy sprawdzić, czy imię i nazwisko oraz adres e-mail i hasło zostały wpisane oraz czy wiadomość e-mail ma odpowiedni format.
Obsługa przesyłania formularza
Teraz musimy zająć się przesłanymi danymi formularza.
Oto sekwencja (zobacz plik fg_membersite.php w pobranym źródle):
funkcja RegisterUser() ( if(!isset($_POST["przesłany"])) (zwróć false; ) $formvars = array(); if(!$this->ValidateRegistrationSubmission()) (zwróć false; ) $this- >CollectRegistrationSubmission($formvars); if(!$this->SaveToDatabase($formvars)) (zwróć wartość false; ) if(!$this->SendUserConfirmationEmail($formvars)) (zwróć wartość false; ) $this->SendAdminIntimationEmail($ formvars); zwróć wartość true; )
Najpierw zatwierdzamy przesłanie formularza. Następnie zbieramy i „oczyszczamy” dane przesłane z formularza (zawsze rób to przed wysłaniem wiadomości e-mail, zapisaniem w bazie danych itp.). Przesłany formularz jest następnie zapisywany w tabeli bazy danych. Wysyłamy e-mail do użytkownika z prośbą o potwierdzenie. Następnie informujemy administratora, że użytkownik się zarejestrował.
Zapisywanie danych w bazie danych
Teraz, gdy zebraliśmy już wszystkie dane, musimy zapisać je w bazie danych.
Oto jak zapisujemy przesłane formularze do bazy danych.
funkcja SaveToDatabase(&$formvars) ( if(!$this->DBLogin()) ( $this->HandleError("Logowanie do bazy danych nie powiodło się!"); return false; ) if(!$this->Ensuretable()) ( return false; ) if(!$this->IsFieldUnique($formvars,"email")) ( $this->HandleError("Ten e-mail jest już zarejestrowany"); return false; ) if(!$this->IsFieldUnique( $formvars,"username")) ( $this->HandleError("Ta nazwa użytkownika jest już używana. Spróbuj użyć innej nazwy użytkownika"); return false; ) if(!$this->InsertIntoDB($formvars)) ( $this- >HandleError("Wstawianie do bazy danych nie powiodło się!"); return false; ) return true; )
Pamiętaj, że dane logowania do bazy danych zostały skonfigurowane w pliku membersite_config.php. W większości przypadków można użyć „localhost” jako hosta bazy danych.
Po zalogowaniu sprawdzamy, czy tabela istnieje. (Jeśli nie, skrypt utworzy wymaganą tabelę).
Następnie upewniamy się, że nazwa użytkownika i adres e-mail są unikalne. Jeśli nie jest unikalny, zwracamy błąd użytkownikowi.
Struktura tabeli bazy danych
Taka jest struktura tabeli. Funkcja CreateTable() w pliku fg_membersite.php tworzy tabelę. Oto kod:
funkcja CreateTable() ( $qry = "Utwórz tabelę $this->nazwa tabeli (". "id_user INT NOT NULL AUTO_INCREMENT", "nazwa VARCHAR(128) NOT NULL", "e-mail VARCHAR(64) NOT NULL", " "numer_telefonu VARCHAR(16) NOT NULL ”, „nazwa użytkownika VARCHAR(16) NOT NULL”, „hasło VARCHAR(32) NOT NULL”, „kod potwierdzenia VARCHAR(32)”, „KLUCZ PODSTAWOWY (id_użytkownika).” „)”; if( !mysql_query($qry,$this->connection)) ( $this->HandleDBError("Błąd podczas tworzenia tabeli \nzapytania był\n $qry"); return false; ) return true; )
Pole id_user będzie zawierać unikalny identyfikator użytkownika i jest jednocześnie kluczem podstawowym tabeli. Zwróć uwagę, że w polu hasła dopuszczamy 32 znaki. Robimy to, ponieważ jako dodatkowy środek bezpieczeństwa będziemy przechowywać hasło w bazie danych zaszyfrowane przy użyciu MD5. Należy pamiętać, że ponieważ MD5 jest metodą szyfrowania jednokierunkowego, nie będziemy w stanie odzyskać hasła, jeśli użytkownik je zapomni.
Wstawienie rejestracji do tabeli
Oto kod, którego używamy do wstawiania danych do bazy danych. Wszystkie nasze dane będą dostępne w tablicy $formvars.
funkcja InsertIntoDB(&$formvars) ( $confirmcode = $this->MakeConfirmationMd5($formvars["email"]); $insert_query = "wstaw do ".$this->nazwa tabeli."(nazwa, adres e-mail, nazwa użytkownika, hasło, kod potwierdzenia) wartości („” . $this->SanitizeForSQL($formvars["nazwa"]) . "", "" . $this->SanitizeForSQL($formvars["email"]) . "", "" .$ this->SanitizeForSQL($formvars["nazwa użytkownika"]) . "", "" .md5($formvars["hasło"]) . "", "" . $confirmcode . """; if(! mysql_query( $insert_query ,$this->połączenie)) ( $this->HandleDBError("Błąd podczas wstawiania danych do tabeli\nquery:$insert_query"); return false; ) return true; )
Zauważ, że używamy funkcji PHP md5() do szyfrowania hasła przed wstawieniem go do bazy danych.
Tworzymy również unikalny kod potwierdzający z adresu e-mail użytkownika.
Wysyłać maile
Teraz, gdy mamy rejestrację w naszej bazie danych, wyślemy użytkownikowi wiadomość e-mail z potwierdzeniem. Aby zakończyć proces rejestracji, użytkownik musi kliknąć łącze w wiadomości e-mail z potwierdzeniem.
funkcja SendUserConfirmationEmail(&$formvars) ( $mailer = new PHPMailer(); $mailer->CharSet = "utf-8"; $mailer->AddAddress($formvars["email"],$formvars["nazwa"]) ; $mailer->Subject = "Twoja rejestracja w ".$this->sitename; $mailer->From = $this->GetFromAddress(); $confirmcode = urlencode($this->MakeConfirmationMd5($formvars["email" ])); $confirm_url = $this->GetAbsoluteURLFolder()."/confirmreg.php?code=".$confirmcode; $mailer->Body ="Witajcie ".$formvars["name"]."\r\ n\r\n". "Dziękujemy za rejestrację w ".$this->sitename."\r\n". "Kliknij poniższy link, aby potwierdzić rejestrację.\r\n." "$confirm_url\r \n". "\r\n". "Pozdrowienia,\r\n". "Webmaster\r\n". $this->sitename; if(!$mailer->Send()) ( $this-> HandleError("Nie udało się wysłać e-maila z potwierdzeniem rejestracji."); return false; ) return true; )
Aktualizacje
9 stycznia 2012 r
Dodano funkcje Resetuj hasło/Zmień hasło
Kod jest teraz udostępniany w GitHubie.
Witamy spowrotem= $fgmembersite->Pełna nazwa użytkownika(); ?>!
Licencja
Kod udostępniany jest na licencji LGPL. Można go swobodnie używać na komercyjnych i niekomercyjnych stronach internetowych.
Brak pokrewnych postów.
Komentarze do tego wpisu są zamknięte.
W ciągu ostatnich kilku lat hosting przeszedł radykalną zmianę. Usługi hostingowe zmieniły sposób działania witryn internetowych. Istnieje kilka rodzajów usług, ale dzisiaj porozmawiamy o opcjach dostępnych dla dostawców usług hostingowych dla sprzedawców. Są to Hosting dla sprzedawców systemu Linux i Hosting dla sprzedawców systemu Windows. Zanim zrozumiemy podstawowe różnice między nimi, dowiedzmy się, czym jest hosting dla sprzedawców.
Hosting dla sprzedawców
Mówiąc najprościej, hosting dla resellerów to forma hostingu internetowego, w ramach której właściciel konta może wykorzystywać swoje dedykowane miejsce na dysku twardym i przydzieloną przepustowość w celu odsprzedaży na stronach internetowych osób trzecich. Czasami sprzedawca może wypożyczyć serwer dedykowany od firmy hostingowej (Linux lub Windows) i następnie udostępnić go osobom trzecim.
Większość użytkowników stron internetowych korzysta z systemu Linux lub Windows. Ma to związek z czasem pracy. Obie platformy zapewniają, że Twoja witryna będzie wyświetlana przez 99% czasu.
1. Personalizacja
Jedna z głównych różnic pomiędzy planem hostingowym dla sprzedawców systemu Linux a planem udostępnianym przez system Windows polega na dostosowaniu. Chociaż możesz eksperymentować z obydwoma odtwarzaczami na kilka sposobów, Linux jest znacznie bardziej konfigurowalny niż Windows. Ten ostatni ma więcej funkcji niż jego odpowiednik i dlatego wielu programistów i administratorów uważa Linuksa za bardzo przyjazny dla klienta.
2. Aplikacje
Różne usługi hostingowe dla sprzedawców mają różne zastosowania. Zarówno Linux, jak i Windows mają własną gamę aplikacji, ale ten drugi ma przewagę, jeśli chodzi o liczbę i wszechstronność. Ma to związek z otwartą naturą Linuksa. Każdy programista może przesłać swoją aplikację na platformę Linux, co czyni ją atrakcyjnym dostawcą hostingu dla milionów właścicieli witryn.
Należy jednak pamiętać, że jeśli używasz Linuksa do hostingu stron internetowych, ale jednocześnie używasz systemu operacyjnego Windows, niektóre aplikacje mogą po prostu nie działać.
3.Stabilność
Chociaż obie platformy są stabilne, Linux Reseller Hosting jest z nich bardziej stabilny. Będąc platformą typu open source, może pracować w kilku środowiskach. Platforma ta może być co jakiś czas modyfikowana i rozwijana.
4. Kompatybilność z .NET
Nie chodzi o to, że Linux jest lepszy od Windowsa pod każdym możliwym względem. Jeśli chodzi o kompatybilność z .NET, Windows skupia uwagę. Aplikacje internetowe można łatwo tworzyć na platformie hostingowej Windows.
5. Korzyści kosztowe
Obie platformy hostingowe są niedrogie. Jeśli jednak odczuwasz brak gotówki, powinieneś wybrać Linuksa. Jest darmowy i dlatego wybiera go tak wielu programistów i administratorów systemów na całym świecie.
6. Łatwość konfiguracji
Windows jest łatwiejszy w konfiguracji niż jego odpowiednik. Mimo wszystko, co zostało powiedziane i zrobione, system Windows nadal pozostaje przyjazny dla użytkownika przez te wszystkie lata.
7. Bezpieczeństwo
Wybierz hosting dla sprzedawców systemu Linux, ponieważ jest on bezpieczniejszy niż system Windows. Dotyczy to zwłaszcza osób prowadzących działalność w branży e-commerce.
Wniosek
Wybór pomiędzy jednym i drugimbędzie zależeć od wymagań i elastyczności kosztów. Obie usługi hostingowe mają unikalne zalety. Chociaż system Windows jest łatwy w konfiguracji, Linux jest ekonomiczny, bezpieczny i bardziej wszechstronny.
W marcu tego roku miałem bardzo złe doświadczenia z firmą medialną, która odmówiła mi płacenia i odpowiadania na moje e-maile. Nadal są mi winni tysiące dolarów, a uczucie wściekłości przenika mnie każdego dnia. Okazuje się jednak, że nie jestem sam i setki innych właścicieli witryn internetowych jadą na tej samej łodzi. To coś w rodzaju kursu z reklamą cyfrową.
Szczerze mówiąc, prowadzę tego bloga od dłuższego czasu i w przeszłości przeglądałem różne sieci reklamowe. Po usunięciu jednostek reklamowych firmy, która mnie oszukała, wróciłem do punktu wyjścia. Powinienem też zauważyć, że Nigdy nie lubiłem produktu Google AdSense tylko dlatego, że wydaje mi się, że jest to „dno beczki” reklam displayowych. Nie z punktu widzenia jakości, ale przychodów.
Z tego, co rozumiem, chcesz, aby w Twojej witrynie były reklamy Google, ale chcesz, żeby robiły to także inne duże firmy i agencje. W ten sposób maksymalizujesz popyt i przychody.
Po moich negatywnych doświadczeniach mogę polecić firmę Newor Media. I jeśli mam być szczery, na początku nie zostałem sprzedany głównie dlatego, że nie mogłem znaleźć zbyt wielu informacji na ich temat. Znalazłem kilka przyzwoitych recenzji na innych stronach i po rozmowie z kimś tam zdecydowałem się spróbować Powiem, że są SUPER pomocni. Każda sieć, z którą kiedykolwiek współpracowałem, udzieliła mi dość krótkich odpowiedzi, jeśli chodzi o odpowiedzi i rozpoczęcie pracy. Odpowiedzieli na każde pytanie i był to naprawdę zachęcający proces.
Wyświetlam reklamy od kilku miesięcy i zarobki są mniej więcej porównywalne z tym, co zarabiałem w innej firmie. Nie mogę więc powiedzieć, czy są dużo lepsze od innych, ale w czym się wyróżniają? to kwestia, którą naprawdę chcę poruszyć. Komunikacja z nimi nie przypomina żadnej innej sieci, w której kiedykolwiek pracowałem. Oto przypadek, w którym naprawdę się różnią:
Przesłali mi pierwszą płatność na czas za pomocą Paypal. Ponieważ jednak nie jestem w USA (a myślę, że zdarza się to każdemu), pobrano mi opłatę z PayPal. Wysłałem w tej sprawie e-mail do mojego przedstawiciela z pytaniem, czy istnieje sposób na uniknięcie tego w przyszłości.
Mówili, że nie mogą uniknąć opłaty, ale żeby ZWRÓCILI WSZYSTKIE OPŁATY.... W TYM OSTATNIE PŁATNOŚCI! Mało tego, zwrot kosztów otrzymano w ciągu 10 MINUT! Czy kiedykolwiek mogłeś złożyć taką prośbę bez konieczności przekazywania jej do „działu finansów”, gdzie nigdy nie otrzymałeś odpowiedzi.
Najważniejsze jest to, że kocham tę firmę. Być może byłbym w stanie zarobić więcej gdzie indziej, nie jestem do końca pewien, ale mają ze mną wydawcę na całe życie. Nie jestem dużą witryną i nie generuję ogromnych dochodów, ale czuję się jak bardzo ważny klient, kiedy z nimi rozmawiam. To naprawdę powiew świeżego powietrza w branży pełnej oszustw i braku reakcji.
Mikrokomputery stworzone przez Fundację Raspberry Pi w 2012 roku odniosły ogromny sukces w pobudzaniu kreatywności u małych dzieci, a ta brytyjska firma zaczęła oferować programy startowe do nauki kodowania, takie jak pi-top i Kano. Obecnie istnieje nowy startup, który wykorzystuje elektronikę Pi, a urządzenie jest znane jako Pip i jest to przenośna konsola oferująca ekran dotykowy, wiele portów, przyciski sterujące i głośniki. Ideą tego urządzenia jest zaangażowanie młodszych osób w urządzenie do gier, które jest w stylu retro, ale oferuje również możliwość nauki kodu za pośrednictwem platformy internetowej.
Niesamowita platforma programowa oferowana z Pipem umożliwi rozpoczęcie kodowania w Pythonie, HTML/CSS, JavaScript, Lua i PHP. Urządzenie oferuje szczegółowe samouczki ułatwiające dzieciom rozpoczęcie kodowania, a nawet umożliwia im miganie diod LED. Chociaż Pip jest wciąż prototypem, z pewnością odniesie ogromny sukces w branży i zaangażuje dzieci zainteresowane kodowaniem oraz zapewni im edukację i zasoby potrzebne do rozpoczęcia kodowania w młodym wieku.
Przyszłość kodowania
Kodowanie ma przed sobą wspaniałą przyszłość i nawet jeśli dzieci nie będą zawodowo zajmować się programowaniem, mogą skorzystać na nauce kodowania za pomocą tego nowego urządzenia, dzięki któremu jest to łatwiejsze niż kiedykolwiek. Dzięki Pipowi nawet najmłodsi entuzjaści kodowania nauczą się różnych języków i będą na dobrej drodze do tworzenia własnych kodów, własnych gier, własnych aplikacji i nie tylko. To przyszłość ery elektronicznej, a Pip umożliwia opanowanie podstawowych elementów kodowania.Informatyka stała się ważną częścią edukacji, a dzięki urządzeniom takim jak nowy Pip dzieci mogą zacząć wzbogacać swoją edukację w domu, bawiąc się. Kodowanie wykracza daleko poza proste tworzenie stron internetowych lub oprogramowania. Można go wykorzystać do zwiększenia bezpieczeństwa w mieście, pomocy w badaniach w dziedzinie medycyny i nie tylko. Ponieważ żyjemy obecnie w świecie zdominowanym przez oprogramowanie, kodowanie jest przyszłością i ważne jest, aby wszystkie dzieci przynajmniej w podstawowym stopniu rozumiały, jak to działa, nawet jeśli nigdy nie wykorzystają tych umiejętności w karierze zawodowej. W przyszłości kodowanie będzie kluczowym elementem codziennego życia. Będzie to język świata, a nieznajomość komputerów i ich działania może stanowić wyzwanie równie trudne do pokonania jak analfabetyzm.
Kodowanie zapewni także poważne zmiany w świecie gier, zwłaszcza jeśli chodzi o gry online, w tym dostęp do kasyn online. Aby zobaczyć, jak kodowanie usprawniło już świat gier, przejrzyj kilka najwyżej ocenianych witryn kasyn, które opierają się na kodowaniu. Rzuć okiem, aby to sprawdzić i zobaczyć, jak kodowanie może przedstawiać realistyczne środowiska online.
Jak Pip angażuje dzieci
Jeśli chodzi o możliwość nauki kodowania, dzieci mają wiele możliwości. Istnieje wiele urządzeń i gadżetów sprzętowych, które można kupić, ale Pip ma inne podejście do swojego urządzenia. Przenośność urządzenia i ekranu dotykowego stanowią przewagę nad innymi urządzeniami kodującymi dostępnymi na rynku. Pip będzie w pełni kompatybilny z komponentami elektronicznymi oprócz systemu Raspberry Pi HAT. Urządzenie wykorzystuje standardowe języki oraz posiada podstawowe narzędzia i jest idealnym urządzeniem dla każdego początkującego kodera. Celem jest usunięcie wszelkich barier pomiędzy pomysłem a dziełem i udostępnienie narzędzi do natychmiastowego użycia. Jedną z innych wielkich zalet Pipa jest to, że wykorzystuje kartę SD, dzięki czemu może być używany również jako komputer stacjonarny, gdy jest podłączony do monitora i myszy.Urządzenie Pip pomogłoby dzieciom i początkującym programistom z entuzjazmem w nauce i ćwiczeniu kodowania. Oferując połączenie realizacji zadań i majsterkowania przy rozwiązywaniu problemów, urządzenie z pewnością zaangażuje młodsze pokolenie. Urządzenie umożliwia następnie młodym programistom przejście na bardziej zaawansowane poziomy kodowania w różnych językach, takich jak JavaScript i HTML/CSS. Ponieważ urządzenie jest repliką konsoli do gier, natychmiast przyciągnie uwagę dzieci i zaangażuje je do nauki kodowania już od najmłodszych lat. Zawiera także kilka fabrycznie załadowanych gier, takich jak Pac-Man i Minecraft, które przyciągną uwagę.
Nadchodzące innowacje
Przyszłe innowacje w dużej mierze zależą od obecnych umiejętności dziecka w zakresie kodowania i jego ogólnego zrozumienia procesu. Dzięki temu, że dzieci od najmłodszych lat nauczą się kodować, korzystając z takich urządzeń jak nowy Pip, zdobędą umiejętności i wiedzę, dzięki którym w przyszłości będą mogły tworzyć niesamowite rzeczy. Może to oznaczać wprowadzenie nowych gier lub aplikacji, a nawet pomysłów, które mogą wcielić w życie i pomóc w badaniach medycznych i leczeniu. Istnieją nieograniczone możliwości. Ponieważ naszą przyszłość będzie kontrolować oprogramowanie i komputery, najlepszym sposobem jest rozpoczęcie w młodym wieku, dlatego nowy Pip jest nastawiony na młodych ludzi. Oferując konsolę, na której można grać w gry, jednocześnie ucząc umiejętności kodowania, młodzi członkowie społeczeństwa są na dobrej drodze do zostania w przyszłości twórcami oprogramowania, które zmieni całe nasze życie. To dopiero początek, ale miliony dzieci na całym świecie zaczynają się tego uczyć i doskonalić. Dzięki urządzeniom takim jak Pip omówione zostaną podstawy kodowania, a dzieci szybko nauczą się różnych języków kodowania, co może prowadzić ich na niesamowite ścieżki wkraczania w dorosłość.Tutorial dla bardzo początkujących! Nieważne, gdzie się udasz w Internecie, prawie wszędzie znajdziesz podstawowy element – rejestrację użytkownika. Niezależnie od tego, czy potrzebujesz, aby Twoi użytkownicy rejestrowali się ze względów bezpieczeństwa, czy tylko w celu uzyskania dodatkowej funkcji, nie ma powodu, aby nie zrobić tego, korzystając z tego prostego samouczka W tym samouczku omówimy podstawy zarządzania użytkownikami, kończąc na prostym obszarze członkowskim, który możesz zaimplementować na własnej stronie internetowej.
Jeśli potrzebujesz dodatkowej pomocy lub szukasz skrótu, sprawdź ofertę dostawców usług PHP w Envato Studio. Ci doświadczeni programiści mogą pomóc Ci we wszystkim, od szybkiego naprawienia błędu po stworzenie całej aplikacji od zera. Po prostu przejrzyj dostawców, przeczytaj recenzje i oceny i wybierz odpowiedniego dla siebie.
Wstęp
W tym samouczku omówimy każdy etap tworzenia systemu zarządzania użytkownikami wraz z systemem prywatnych wiadomości między użytkownikami. Zrobimy to za pomocą PHP, z bazą danych MySQL do przechowywania wszystkich informacji o użytkowniku. Ten samouczek jest przeznaczony dla absolutnie początkujących w PHP, więc nie jest wymagana żadna wcześniejsza wiedza - w rzeczywistości możesz się trochę znudzić, jeśli jesteś doświadczonym użytkownikiem PHP!
Ten samouczek ma stanowić podstawowe wprowadzenie do sesji i korzystania z baz danych w PHP. Chociaż efekt końcowy tego samouczka może nie wydawać ci się od razu przydatny, umiejętności, które zdobędziesz w tym samouczku, pozwolą ci na dalsze tworzenie własnego systemu członkostwa; do własnych potrzeb.
Zanim rozpoczniesz ten samouczek, upewnij się, że masz pod ręką następujące informacje:
- Nazwa hosta bazy danych- jest to serwer, na którym znajduje się Twoja baza danych. W większości sytuacji będzie to po prostu „localhost”.
- Nazwa bazy danych, nazwa użytkownika bazy danych, hasło bazy danych- przed rozpoczęciem tego samouczka powinieneś utworzyć bazę danych MySQL, jeśli masz taką możliwość lub masz pod ręką informacje umożliwiające połączenie się z istniejącą bazą danych. Informacje te są potrzebne w całym samouczku.
Jeśli nie masz tych informacji, Twój dostawca usług hostingowych powinien być w stanie Ci je dostarczyć.
Skoro mamy już za sobą formalności, przejdźmy do samouczka!
Krok 1 – Konfiguracja wstępna
Konfiguracja bazy danych
Jak stwierdzono we wstępie, do kontynuowania pracy poza tym punktem samouczka potrzebna jest baza danych. Na początek utworzymy w tej bazie danych tabelę do przechowywania informacji o użytkowniku.
Tabela, której potrzebujemy, będzie przechowywać informacje o naszym użytkowniku; do naszych celów użyjemy prostej tabeli, ale jeśli zajdzie taka potrzeba, łatwo będzie przechowywać więcej informacji w dodatkowych kolumnach. W naszym systemie potrzebujemy następujących czterech kolumn:
- Identyfikator użytkownika (Główny klucz)
- Nazwa użytkownika
- Hasło
- Adres e-mail
W kategoriach baz danych, a Główny klucz jest polem, które jednoznacznie identyfikuje wiersz. W tym przypadku UserID będzie naszym kluczem podstawowym. Ponieważ chcemy, aby wartość ta zwiększała się za każdym razem, gdy użytkownik się zarejestruje, użyjemy specjalnej opcji MySQL - auto_inkrementacja.
Zapytanie SQL służące do utworzenia naszej tabeli znajduje się poniżej i zwykle będzie uruchamiane w zakładce „SQL” w phpMyAdmin.
UTWÓRZ TABELĘ `użytkownicy` („IDUżytkownika” INT(25) NIE NULL KLUCZ PODSTAWOWY AUTO_INCREMENT , `Nazwa użytkownika` VARCHAR(65) NIE NULL , `Hasło` VARCHAR(32) NIE NULL , `Adres e-mail` VARCHAR(255) NIE NULL );
Tworzenie pliku podstawowego
Aby uprościć tworzenie naszego projektu, stworzymy plik bazowy, który będziemy mogli dołączyć do każdego z tworzonych przez nas plików. Plik ten będzie zawierał informacje o połączeniu z bazą danych wraz z pewnymi zmiennymi konfiguracyjnymi, które pomogą nam w tym procesie.
Zacznij od utworzenia nowego pliku: base.php i wpisz w nim następujący kod:
Przyjrzyjmy się kilku z tych linii, dobrze? Jest tu kilka funkcji, których użyliśmy, a które jeszcze nie zostały wyjaśnione, więc przejrzyjmy je szybko i znajdźmy dla nich sens – jeśli rozumiesz już podstawy PHP, możesz pominąć to wyjaśnienie.
Początek_sesji();
Ta funkcja rozpoczyna sesję dla nowego użytkownika, a w dalszej części tego samouczka będziemy przechowywać informacje w tej sesji, aby umożliwić nam rozpoznanie użytkowników, którzy już się zalogowali. Jeśli sesja została już utworzona, ta funkcja rozpozna to i przeniesie tę sesję na następną stronę.
Mysql_connect($dbhost, $dbuser, $dbpass) or die("Błąd MySQL: " .mysql_error()); mysql_select_db($nazwa bazy danych) or die("Błąd MySQL: " . mysql_error());
Każda z tych funkcji wykonuje oddzielne, ale powiązane zadanie. Funkcja mysql_connect łączy nasz skrypt z serwerem bazy danych, korzystając z informacji, które podaliśmy powyżej, a funkcja mysql_select_db wybiera następnie bazę danych, której ma używać skrypt. Jeśli którakolwiek z funkcji nie zostanie ukończona, funkcja matrycy automatycznie wkroczy i zatrzyma przetwarzanie skryptu, pozostawiając wszystkich użytkowników z komunikatem, że wystąpił błąd MySQL.
Krok 2 – Powrót do frontendu
Co musimy zrobić najpierw?
Najważniejszym elementem na naszej stronie jest pierwsza linia PHP; ta linia będzie zawierać plik, który utworzyliśmy powyżej (base.php) i zasadniczo umożliwi nam dostęp do czegokolwiek z tego pliku w naszym bieżącym pliku. Zrobimy to za pomocą następującej linii kodu PHP. Utwórz plik o nazwie indeks.php i umieść ten kod na górze.
Rozpocznij stronę HTML
Pierwszą rzeczą, którą zrobimy dla naszego frontendu, będzie utworzenie strony, na której użytkownicy będą mogli wprowadzić swoje dane, aby się zalogować, lub jeśli są już zalogowani, stronę, na której będą mogli wybrać, co chcą dalej robić. W tym samouczku zakładam, że użytkownicy mają podstawową wiedzę na temat działania HTML/CSS i dlatego nie będę szczegółowo wyjaśniał tego kodu; w tej chwili te elementy nie będą stylizowane, ale będziemy mogli to zmienić później, tworząc nasz arkusz stylów CSS.
Korzystając z pliku, który właśnie utworzyliśmy (index.php), wprowadź następujący kod HTML poniżej linii PHP, którą już utworzyliśmy.
Co im pokażemy?
Zanim wyświetlimy resztę strony, zadajmy sobie kilka pytań:
- Czy użytkownik jest już zalogowany?
- Tak- musimy pokazać im stronę z opcjami do wyboru.
- NIE
- Tak- musimy sprawdzić ich dane i jeśli są prawidłowe, zalogujemy je do serwisu.
- NIE- przechodzimy do następnego pytania.
Te pytania są w rzeczywistości tymi samymi pytaniami, które zamierzamy zaimplementować w naszym kodzie PHP. Zrobimy to w formie instrukcji if. Nie wprowadzając niczego do żadnego z nowych plików, przyjrzyjmy się logice, której użyjemy w pierwszej kolejności.
Wygląda na zagmatwane, prawda? Podzielmy to na mniejsze sekcje i omówmy je pojedynczo.
If(!empty($_SESSION["LoggedIn"]) && !empty($_SESSION["Nazwa użytkownika"])) ( // Pozwól użytkownikowi uzyskać dostęp do strony głównej )
Kiedy użytkownik loguje się do naszej witryny, będziemy przechowywać jego informacje w sesji - w dowolnym momencie możemy uzyskać dostęp do tych informacji w specjalnej globalnej tablicy PHP - $_SESSION. Używamy funkcji pustych do sprawdzenia, czy zmienna jest pusta, za pomocą operatora ! Przed tym. Dlatego mówimy:
Jeśli zmienna $_SESSION["LoggedIn"] nie jest pusta i $_SESSION["Nazwa użytkownika"] nie jest pusta, wykonaj ten fragment kodu.
Następny wiersz działa w ten sam sposób, tyle że tym razem przy użyciu tablicy globalnej $_POST. Ta tablica zawiera wszelkie dane przesłane z formularza logowania, który utworzymy w dalszej części tego samouczka. Ostatnia linia zostanie wykonana tylko wtedy, gdy nie zostanie spełniona żadna z poprzednich instrukcji; w takim przypadku wyświetlimy użytkownikowi formularz logowania.
Skoro już rozumiemy logikę, umieśćmy trochę treści pomiędzy tymi sekcjami. W pliku Index.php wpisz poniżej to, co już masz.
Strefa użytkownika
=$_SESSION["EmailAddress"]?>
.
Powodzenie"; Echo " Przekierowujemy Cię teraz do strefy członkowskiej.
"; Echo " "; ) jeszcze (echo "Błąd
"; Echo "Przepraszamy, nie udało się znaleźć Twojego konta. Proszę Kliknij tutaj, aby spróbować ponownie.
"; ) ) jeszcze (?>Login członka
Dzięki za odwiedziny! Zaloguj się poniżej lub kliknij tutaj, aby się zarejestrować.
Mamy nadzieję, że pierwszy i ostatni blok kodu nie wprowadzą Was zbytnio w zamieszanie. To, czym naprawdę musimy się teraz zająć, to to, po co wszyscy przyszliście do tego samouczka – kod PHP. Przejdziemy teraz przez drugą sekcję, wiersz po wierszu, i wyjaśnię, do czego przeznaczony jest każdy fragment kodu.
$nazwa użytkownika = mysql_real_escape_string($_POST["nazwa użytkownika"]); $hasło = md5(mysql_real_escape_string($_POST["hasło"]));
Istnieją dwie funkcje, które wymagają wyjaśnienia. Po pierwsze mysql_real_escape_string - bardzo przydatna funkcja do czyszczenia danych wejściowych z bazy danych. Nie jest to środek niezawodny, ale zapobiegnie większości złośliwych hakerów, usuwając niechciane części tego, co zostało umieszczone w naszym formularzu logowania. Po drugie, md5. Nie można tu wchodzić w szczegóły, ale funkcja ta po prostu szyfruje wszystko, co jest do niej przekazywane – w tym przypadku hasło użytkownika – aby zapobiec odczytaniu tego przez wścibskie oczy.
$checklogin = mysql_query("WYBIERZ * OD użytkowników GDZIE Nazwa użytkownika = ".$nazwa użytkownika."" AND Hasło = ".$hasło."""); if(mysql_num_rows($checklogin) == 1) ( $row = mysql_fetch_array($checklogin); $email = $row["EmailAddress"]; $_SESSION["Nazwa użytkownika"] = $nazwa użytkownika; $_SESSION["Adres e-mail"] = $e-mail;$_SESSION["Zalogowany"] = 1;
Tutaj mamy rdzeń naszego kodu logowania; po pierwsze, uruchamiamy zapytanie w naszej bazie danych. W tym zapytaniu szukamy wszystkiego, co dotyczy członka, którego nazwa użytkownika i hasło odpowiadają wartościom naszej nazwy użytkownika i hasła $podanym przez użytkownika. W kolejnej linii mamy instrukcję if, w której sprawdzamy, ile otrzymaliśmy wyników - jeśli nie będzie żadnych wyników, ta sekcja nie zostanie przetworzona. Ale jeśli jest jakiś rezultat, wiemy, że użytkownik istnieje, więc będziemy go logować.
Kolejne dwie linijki służą do uzyskania adresu e-mail użytkownika. Mamy już tę informację z zapytania, które już wykonaliśmy, więc możemy łatwo uzyskać do niej dostęp. W pierwszej kolejności otrzymujemy tablicę danych, które zostały pobrane z bazy danych - w tym przypadku używamy funkcji PHP mysql_fetch_array. Następnie przypisałem wartość pola EmailAddress do zmiennej, którą możemy wykorzystać później.
Teraz ustalamy sesję. Przechowujemy nazwę użytkownika i adres e-mail użytkownika w sesji, wraz ze specjalną wartością, abyśmy wiedzieli, że został on zalogowany przy użyciu tego formularza. Po tym wszystkim, zostanie on przekierowany do Strefy członkowskiej za pomocą META REFRESH w kodzie.
Jak więc obecnie wygląda nasz projekt z perspektywy użytkownika?
Świetnie! Nadszedł czas, aby przejść dalej i upewnić się, że ludzie rzeczywiście mogą dostać się do Twojej witryny.
Pozwól ludziom się zarejestrować
Dobrze jest mieć formularz logowania na swojej stronie, ale teraz musimy pozwolić użytkownikowi na korzystanie z niego - musimy utworzyć formularz logowania. Utwórz plik o nazwie Register.php i umieść w nim następujący kod.
Przepraszam ta nazwa użytkownika jest zajęta. Wróć i spróbuj ponownie.
"; ) else ( $registerquery = mysql_query("WSTAW DO użytkowników (nazwa użytkownika, hasło, adres e-mail) WARTOŚCI("".$nazwa użytkownika."", ".$hasło.", ".$email."") " ); if($registerquery) ( echo "Powodzenie
"; Echo "Twoje konto zostało pomyślnie utworzone. Proszę Kliknij tutaj aby się zalogować.
"; ) jeszcze (echo "Błąd
"; Echo "Przepraszamy, rejestracja nie powiodła się. Wróć i spróbuj ponownie.
"; ) ) ) jeszcze (?>Rejestr
Aby się zarejestrować, wpisz poniżej swoje dane.