HeyTuts

jeśli chodzi o tworzenie stron internetowych dla prawdziwego świata, posiadanie prostego formularza rejestracyjnego jest niezbędne. Internet jest praktycznie zbudowany w witrynach członkowskich. W ramach serii tutoriali my PHP member system stworzymy prosty formularz rejestracyjny w języku php.

ten prosty formularz rejestracyjny pozwala każdemu użytkownikowi zarejestrować się tylko za pomocą nazwy użytkownika, adresu e-mail i hasła, ale możesz łatwo dodać wiadomość e-mail, jeśli chcesz.

dla bardzo prostego przeglądu kodu źródłowego dla naszej strony rejestracji php jest to:

<?php // connect to the database // check for a user being logged in // process the registration form data ?> <html> display a header display the error message (if there is one) display the registration form </html>

jak zrobić prosty formularz rejestracyjny w php

  1. Stwórz bazę danych dla formularza rejestracyjnego
  2. Stwórz prosty formularz rejestracyjny w HTML/CSS
  3. Połącz się z bazą danych MySQL za pomocą php
  4. Przetworz formularz rejestracyjny wejście
  5. Dodaj nowe konta użytkowników do bazy danych

Krok 1: Utwórz bazę danych dla formularza rejestracyjnego

często pierwszym krokiem tworzenia strony internetowej jest utworzenie bazy danych. I oczywiście, prawdopodobnie będziesz musiał wprowadzić zmiany w swojej bazie danych później. Ale najpierw skonfigurowanie bazy danych da ci świetny punkt wyjścia

stworzymy prostą bazę danych do przechowywania wszystkich informacji o koncie użytkownika, w tym jego nazwy użytkownika i hasła. Śmiało i zaloguj się do Panelu sterowania phpMyAdmin na swoim serwerze. (jeśli jesteś nowy w phpMyAdmin, sprawdź moje wprowadzenie do artykułu phpMyAdmin)

pola bazy danych dla naszego systemu członkostwa php

każda baza danych potrzebuje nazwy, a ponieważ lubię, aby życie było proste, nazwijmy naszą bazę „użytkownikami”.

Uwaga: zakładam, że masz już przynajmniej podstawową wiedzę na temat tego, jak korzystać z phpMyAdmin i jak działają bazy danych MySQL. Jeśli nie, możesz poczytać o podstawach phpMyAdmin lub obsłudze bazy danych MySQL tutaj na HeyTuts.com. (te linki otwierają się w nowych zakładkach)

ponieważ tworzymy prosty formularz rejestracyjny, będziemy potrzebować tylko 7 pól w naszej bazie danych. W ten sposób od razu otrzymujemy wystarczającą ilość podstawowej funkcjonalności. Ale nadal można dodać dodatkowe funkcje, takie jak formularz resetowania hasła.

  1. id-będzie to unikalny identyfikator dla każdego użytkownika. Musimy upewnić się, że pole id jest liczbą całkowitą i ustawić automatyczne zwiększanie za pomocą klucza podstawowego. To jest koniecznością!!! W przypadku przejścia do bardziej złożonych systemów członkowskich użycie identyfikatora konta użytkownika sprawia, że łączenie rekordów bazy danych jest bardzo proste.
  2. nazwa użytkownika-powinno to być oczywiste. Ustawiłem swój NA 50 znakowy varchar. Bardzo rzadko użytkownik chce mieć nazwę użytkownika dłuższą niż 10-15 znaków, więc 50 powinno się nią zająć. Ale to również daje możliwość ustawienia żądanej długości nazwy użytkownika w kodzie php.
  3. email-adres e-mail użytkownika. Ustaw 100-znakowy varchar.
  4. hasło-użyjemy podstawowego szyfrowania haseł naszych użytkowników. Więc varchar 50 znaków będzie dobrze. Później zobaczysz, że używamy funkcji md5 () do tworzenia podstawowego skrótu hasła dla prostego bezpieczeństwa.
  5. date_created-to będzie przechowywać wartość time (), kiedy użytkownik utworzył swoje konto.
  6. last_login – możemy śledzić ostatni raz, gdy użytkownik zalogował się, aktualizując ten rekord tutaj. Ponownie będzie z funkcji time ().
  7. status-Śledź status aktywacji konta. Możemy sprawdzić tę wartość, aby sprawdzić, czy użytkownik aktywował swoje konto, czy nie, i na podstawie tego pozwól mu się zalogować lub powiadomić o aktywacji konta.

Krok 2: Stwórz prosty formularz rejestracyjny w HTML / CSS

dzięki konfiguracji bazy danych możemy utworzyć rzeczywisty formularz rejestracyjny, którego użytkownik użyje do utworzenia konta. Podobnie jak prawie wszystkie formularze stron internetowych, zrobimy to za pomocą HTML i CSS.

Utwórz rejestr.plik php na twoim serwerze

mam zamiar wywołać moją stronę formularza rejestracyjnego Zarejestruj się.php, więc śmiało Utwórz ten plik na swoim serwerze WWW. Polecam zrobienie tego całego systemu na twoim serwerze WWW localhost z XAMPP (link zewnętrzny).

Utwórz podstawowy nagłówek nawigacji

nagłówek tego samouczka systemu członków php będzie również prosty. Z kilkoma linkami tylko dla super podstawowej nawigacji. Poniżej znajduje się podstawowa konfiguracja strony dla naszego rejestru.plik php.

<html> <head> <title>php member system | registration form</title> </head> <body> <h1>member system tutorial - register</h1> <a href="./index.php">Home</a> | <a href="./register.php">Register</a> | <a href="./login.php">Login</a> <hr /> <!-- error message code here --> <!-- registration form html code here --> </body></html>

Utwórz rzeczywisty formularz rejestracyjny

teraz możemy utworzyć formularz, który użytkownik będzie widział i wchodził w interakcję. Jeśli myślisz o naszej konfiguracji bazy danych, mamy tylko 3 pola, które użytkownik ma możliwość wprowadzić: nazwę użytkownika, hasło i adres e-mail. Nie zapomnij dodać tekstu, aby wyświetlić etykiety, dla których pola są wymagane.

Z Dobrej Praktyki, Lubię dodać dodatkowe pole hasła dla użytkownika, aby potwierdzić swoje hasło. I pamiętaj, aby poinformować użytkowników o wymaganej sile hasła.

nienawidzę, gdy witryna wymaga pewnych wymagań dotyczących hasła, ale nie mów o tych wymaganiach! Idiotyczne.

aby uzyskać bezpieczne hasło do konta użytkownika, będziemy potrzebować co najmniej 5 znaków. Z co najmniej jednym specjalnym charakterem jednego z nich:!#$.,:;(). To nie da użytkownikowi najbezpieczniejszego hasła, ale da ci pomysł, jak wymusić silniejsze hasła na później.

<form action="./register.php" class="form" method="POST"><h1>create a new account</h1><div class=""><?php// check to see if the user successfully created an accountif (isset($success) && $success == true){echo '<p color="green">Yay!! Your account has been created. <a href="./login.php">Click here</a> to login!<p>';}// check to see if the error message is set, if so display itelse if (isset($error_msg))echo '<p color="red">'.$error_msg.'</p>';?></div><div class=""><input type="text" name="username" value="" placeholder="enter a username" autocomplete="off" required /></div><div class=""><input type="text" name="email" value="" placeholder="provide an email" autocomplete="off" required /></div><div class=""><input type="password" name="passwd" value="" placeholder="enter a password" autocomplete="off" required /></div><div class=""><p>password must be at least 5 characters and<br /> have a special character, e.g. !#$.,:;()</font></p></div><div class=""><input type="password" name="confirm_password" value="" placeholder="confirm your password" autocomplete="off" required /></div><div class=""><input class="" type="submit" name="registerBtn" value="create account" /></div><p class="center"><br />Already have an account? <a href="<?php echo SITE_ADDR ?>/login">Login here</a></p></form>

jeśli zauważysz, umieszczam nasz formularz rejestracyjny w prostej tabeli, aby wszystko ładnie wyrównać dla użytkownika. Ważną rzeczą, na którą należy zwrócić uwagę, jest działanie formularza (aka POST), nazwy pól tekstowych i nazwa przycisku Wyślij.

PHP member system-2 php registration form user register form

wszystkie te nazwy pól są kluczowe w skrypcie zaplecza do pobierania danych po przesłaniu formularza przez użytkownika. Zwróć również uwagę na metodę formularza, POST, która ukryje dane formularza przed użytkownikiem zamiast wysyłać je do adresu url, takiego jak GET will.

wyświetl komunikat o błędzie, w razie potrzeby

na stronie rejestru, ty i twój użytkownik uznacie za pomocne wyświetlenie komunikatu o błędzie. W razie potrzeby. Umieszczę go poniżej nawigacji, a nad formularzem rejestracyjnym. Ta wiadomość da użytkownikowi wyobrażenie o tym, co zrobił źle i musi poprawić, zanim będzie mógł utworzyć konto.

zasadniczo zamierzam utworzyć dwie zmienne, jedną o nazwie $success I $error_msg. Wykonamy proste sprawdzenie, czy te dwie zmienne są ustawione. Na podstawie tego, czy są ustawione (czyli utworzone i przypisane wartości), wyświetlamy odpowiedni komunikat o błędzie.

<?php // check to see if the user successfully created an account if (isset($success) && $success == true){ echo '<font color="green">Yay!! Your account has been created. <a href="./login.php">Click here</a> to login!<font>'; } // check to see if the error message is set, if so display it else if (isset($error_msg)) echo '<font color="red">'.$error_msg.'</font>'; else echo ''; // do nothing?>

chodzi o to, że jeśli podczas przetwarzania danych wystąpi błąd, możemy ustawić komunikat o błędzie w zmiennej $error_msg, a następnie zostanie on wyświetlony użytkownikowi i będziemy przetwarzać informacje. Jeśli użytkownik pomyślnie utworzy swoje konto, ustawimy $success na true i wyświetlimy komunikat o sukcesie na zielono (ponieważ zielony jest zawsze dobry, mam rację??).

Krok 3: Połącz się z bazą danych MySQL za pomocą php

możemy teraz dostać się do części kodu PHP. Zanim będziemy mogli wykonać jakiekolwiek operacje na bazie danych MySQL, musisz połączyć się z bazą danych. Większość stron łączy się z bazą danych w osobnej konfiguracji lub skrypcie połączenia. Więc zrobimy to samo.

Utwórz nowy skrypt php o nazwie connect.php i zapisać go w tym samym katalogu co rejestr.plik php.

<?php $conn = mysqli_connect("localhost", "root", "password", "code_projects");?>

Krok 4: przetworzenie formularza rejestracyjnego wejście

teraz do mięsa i ziemniaków tego prostego formularza rejestracyjnego. Kod php do przetworzenia formularza po przesłaniu.

ponieważ stworzyliśmy już nasz skrypt połączenia z bazą danych, możemy użyć funkcji require_once (), aby załadować skrypt połączenia.

<?php // include our connect script require_once("connect.php"); // check to see if there is a user already logged in, if so redirect them session_start(); if (isset($_SESSION) && isset($_SESSION)) header("Location: ./index.php"); // redirect the user to the home page?>

następnie korzystając z sesji php, będziemy śledzić, czy użytkownicy są zalogowani, czy nie. Na razie Sprawdzimy czy zmienne sesji są ustawione. O tym jak ustawić zmienne sesji dowiemy się w samouczku formularza logowania. Jeśli użytkownik jest zalogowany, przekierujemy go na stronę główną.

Pobierz wszystkie dane formularza rejestracyjnego

gdy będziemy gotowi, aby uzyskać wszystkie dane formularza, najpierw sprawdzamy, czy przycisk submit został kliknięty (aka formularz został złożony). Jeśli tak było, to wszystkie dane formularza przechowujemy w zmiennych. Jeśli Formularz nie został przesłany, nie robimy nic poza wyświetlaniem formularza użytkownikowi.

ponieważ używamy formularza typu POST, musimy uzyskać dane postu za pomocą naszego kodu php. Wszystkie „wysłane” dane z formularza będą w zmiennej tablicowej $_POST. Następnie można użyć nazwy elementu formularza jako kluczy tablicy. Pozwala nam uzyskać konkretne dane, których szukasz, Jak to:

if (isset($_POST)){ // get all of the form data $username = $_POST; $email = $_POST; $passwd = $_POST; $passwd_again = $_POST; // next code block }

wykonaj podstawowe sprawdzenie danych formularza

następnie sprawdzamy, czy użytkownik wypełnił formularz rejestracyjny. Sprawdzanie adresu e-mail, nazwy użytkownika i haseł. Jeśli upewnimy się, że każda zmienna nie jest pustym łańcuchem, to znaczy, że jest tam jakiś tekst, prawda?

następnie sprawdzamy, czy hasło i potwierdź hasło są dokładnie tym samym tekstem. Czapki i w ogóle. Używając trzech znaków równości w wierszu (to jest ===) w instrukcji if, łańcuchy są dopasowane do wielkości liter.

zasadniczo, jeśli porównamy „hello ” do” HeLLo ” używając dwóch znaków równości, otrzymasz prawdziwy wynik. Dzieje się tak, ponieważ nasz kod mówi „tak cześć i cześć to to samo słowo”. Ale jeśli porównamy je za pomocą trzech równych znaków, nasz kod brzmi ” nie! Zatrzymaj się. Te słowa nie pasują. Wielki fałsz!”Ma sens?

// verify all the required form data was enteredif ($username != "" && $passwd != "" && $passwd_again != ""){ // make sure the two passwords match if ($passwd === $passwd_again){ // make sure the password meets the min strength requirements if ( strlen($passwd) >= 5 && strpbrk($passwd, "!#$.,:;()") != false ){ // next code block } else $error_msg = 'Your password is not strong enough. Please use another.'; } else $error_msg = 'Your passwords did not match.';}else $error_msg = 'Please fill out all required fields.';

następnie możemy upewnić się, że hasła spełniają nasze wymagania wytrzymałościowe. Nasze Ohhh tak imponujące kryteria dla bezpiecznego hasła. Co najmniej 5 znaków i przy użyciu co najmniej jednego znaku specjalnego.

używając strlen() upewniamy się, że jest wystarczająco długi, aby spełnić nasze minimum 5 znaków. Spokojnie. Następnie za pomocą funkcji strpbrk () możemy sprawdzić, czy któryś ze znaków specjalnych na liście jest obecny. Funkcja zwróci false, jeśli żaden ze znaków specjalnych nie jest obecny. Zwróci łańcuch, jeśli taki istnieje.

możesz przeczytać więcej o funkcji na php.net odniesienie. Zasadniczo jest to po prostu bardzo szybki i łatwy sposób na sprawdzenie listy znaków specjalnych istniejących w łańcuchu. Bo poza istniejącymi nie dbamy o nich.

Krok 5: Dodaj nowe konta użytkowników do bazy danych

teraz, gdy wiemy, że wszystkie dane formularza są dobre i gotowe do użycia, możemy rozpocząć sprawdzanie bazy danych. Najpierw sprawdzamy, czy nazwa użytkownika jest już w bazie danych. Jeżeli zwracane są Zero rekordów, wtedy nazwa użytkownika nie znajduje się w bazie danych. Jeśli zostanie zwrócona cokolwiek innego, wtedy zostanie pobrana nazwa użytkownika.

następnie musimy utworzyć kilka dodatkowych zmiennych, aby zapisać niektóre z innych losowych danych, które musimy zapisać w rekordzie bazy danych dla konta użytkownika, które zamierzamy utworzyć. Poniżej tego bloku kodu znajduje się wyjaśnienie każdej ze zmiennych.

zastrzeżenie: chcę podkreślić, że do celów tego kursu nie używamy bardzo skomplikowanego szyfrowania hasła. Po prostu robię to dla efektu nie przechowywania hasła w postaci zwykłego tekstu (nigdy tego nie rób, jest po prostu źle). Jeśli chcesz dowiedzieć się, jak zrobić coś bardziej znaczącego i bezpiecznego, sprawdź nasz samouczek bezpieczeństwa hasłem. Szczegółowo omawiam różne metody tworzenia i przechowywania bezpieczniejszych haseł za pomocą php.

// query the database to see if the username is taken$query = mysqli_query($conn, "SELECT * FROM users WHERE username='{$username}'");if (mysqli_num_rows($query) == 0){ // create and format some variables for the database $id = ''; $passwd = md5($passwd); $date_created = time(); $last_login = 0; $status = 1; // next code block}else $error_msg = 'The username <i>'.$username.'</i> is already taken. Please use another.';
  • $id – potrzebujemy uchwyt miejsca dla auto incrementing id, że baza danych będzie przypisać.
  • $passwd – dodajemy Podstawowe szyfrowanie do hasła użytkownika za pomocą skrótu md5 ()
  • $date_created – za pomocą funkcji time() możemy uzyskać znacznik czasu dokładnie w momencie utworzenia konta użytkownika. Możemy użyć tego później do wyświetlenia za pomocą date ()
  • $last_login-później użyjemy tego do śledzenia, kiedy użytkownik się loguje. Ustawimy go na zero, ponieważ jeszcze się nie zalogowali.
  • $status-korzystając z tego pola, możemy śledzić status kont, na przykład aktywując za pośrednictwem poczty e-mail lub wyłączając go w celach administracyjnych, lub naprawdę wszystko, co kiedykolwiek unosi Twoją Łódź. Mam zamiar ustawić na 1 (jeden) domyślnie, co oznacza aktywne konto i może zalogować się natychmiast.

gdy dodamy funkcję aktywacji e-mail do naszego systemu członkowskiego, status konta naprawdę wejdzie w grę.

teraz możemy w końcu utworzyć rekord bazy danych dla konta użytkownika. Korzystając z zapytania INSERT, możemy bardzo dokładnie wymienić wszystkie informacje o rekordach naszej bazy danych.

jeśli potrzebujesz pomocy w zrozumieniu podstaw działania zapytań. Lub nawet ogólne operacje na bazach danych, Sprawdź mój inny samouczek na temat operacji na bazach danych MySQLi.

po wstawieniu rekordu, jako dobra praktyka, upewnię się, że rekord został rzeczywiście dodany (bo nigdy nie wiadomo, mógł być jakiś błąd.) Ponieważ wcześniej upewniliśmy się, że nazwa użytkownika nie istnieje, teraz, jeśli Sprawdzimy, czy istnieje i znajdziemy rekord z przypisanym do niego rekordem, wiemy, że nasze nowe konto zostało utworzone w bazie danych. Na koniec po prostu ustawiliśmy naszą zmienną $success na true, ponieważ użytkownik zakończył rejestrację i konto zostało utworzone.

// insert the user into the databasemysqli_query($conn, "INSERT INTO users VALUES ( '{$id}', '{$username}', '{$email}', '{$passwd}', '{$date_created}', '{$last_login}', '{$status}')");// verify the user's account was created$query = mysqli_query($conn, "SELECT * FROM users WHERE username='{$username}'");if (mysqli_num_rows($query) == 1){ /* IF WE ARE HERE THEN THE ACCOUNT WAS CREATED! YAY! */ /* WE WILL SEND EMAIL ACTIVATION CODE HERE LATER */ $success = true;}else $error_msg = 'An error occurred and your account was not created.';

ostatnie poprawki do naszego formularza rejestracyjnego

teraz z całą naszą rejestracją.napisany kod php możemy przeglądać z poziomu przeglądarki internetowej. Możesz nawet go przetestować i utworzyć własne konto na nowej stronie rejestracji!

po utworzeniu prostego formularza rejestracyjnego, następną częścią systemu członkowskiego php jest utworzenie formularza logowania. bo jaki jest sens posiadania formularza rejestracyjnego, aby utworzyć konto, jeśli użytkownicy nie mogą zalogować się do swojego konta?

Lubię Ładowanie…

Leave a Reply

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.