HeyTuts

când vine vorba de a face site-uri web pentru lumea reală, este vital să aveți un formular simplu de înregistrare. Internetul este practic construit în site-uri de membru. Deci, ca parte a mea php membru sistem tutorial serie, vom crea un formular simplu de înregistrare în php.

destul de rapid și ușor de scris de la zero, acest formular simplu de înregistrare va permite oricărui utilizator să se înregistreze doar cu un nume de utilizator, e-mail și parolă, dar puteți adăuga cu ușurință un e-mail dacă doriți.

pentru o prezentare foarte simplă a codului sursă pentru pagina noastră de înregistrare php este aceasta:

<?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>

cum se face un formular simplu de înregistrare în php

  1. creați baza de date pentru formularul de înregistrare
  2. Faceți formularul simplu de înregistrare în HTML/CSS
  3. Conectați-vă la baza de date MySQL folosind php
  4. procesați introducerea formularului de înregistrare
  5. Adăugați noi conturi de utilizator în baza de date

pasul 1: Crearea bazei de date pentru formularul de înregistrare

de multe ori, primul pas de a face un site web este de a crea baza de date. Și sigur, va trebui probabil să faceți modificări la baza de date mai târziu. Dar configurarea bazei de date în primul rând, vă va oferi un punct de plecare excelent

vom crea o bază de date simplă pentru a stoca toate informațiile contului utilizatorului, inclusiv numele de utilizator și parola. Continuați și conectați-vă la panoul de control phpMyAdmin de pe serverul dvs. (dacă sunteți nou în phpMyAdmin, consultați articolul meu introductiv în phpMyAdmin)

câmpuri de baze de date pentru sistemul nostru de membru php

fiecare bază de date are nevoie de un nume și, din moment ce îmi place să păstrez viața simplă, să numim Baza noastră de date „utilizatori”.

notă: presupun că aveți deja cel puțin o înțelegere de bază a modului de utilizare a phpMyAdmin și a modului în care funcționează bazele de date MySQL. Dacă nu, atunci puteți citi bazele phpMyAdmin sau funcționarea bazei de date MySQL chiar aici HeyTuts.com. (aceste linkuri se vor deschide în file noi)

deoarece realizăm un formular simplu de înregistrare, vom avea nevoie doar de 7 câmpuri în Baza noastră de date. În acest fel obținem suficientă funcționalitate de bază imediat. Dar încă mai pot adăuga caracteristici suplimentare, cum ar fi un formular de resetare a parolei.

  1. id-acesta va fi un identificator unic pentru fiecare utilizator. Trebuie să ne asigurăm că câmpul id este un număr întreg și setat la incrementare automată cu o cheie primară. Aceasta este o necesitate!!! Când treceți la sisteme membre mai complexe, folosind id-ul contului utilizatorului, este foarte simplu să conectați înregistrările bazei de date împreună.
  2. nume de utilizator-Acest lucru ar trebui să fie auto-explicativ. Am pus-o pe a mea la un varchar de 50 de caractere. Foarte rar, utilizatorul va dori un nume de utilizator mai lung de 10-15 caractere, deci 50 ar trebui să aibă grijă de el. Dar acest lucru vă va oferi, de asemenea, posibilitatea de a seta lungimea dorită a numelui de utilizator în codul php.
  3. email – adresa de e-mail a utilizatorului. Setați-l un varchar de 100 de caractere.
  4. password – vom folosi unele criptare de bază pentru parolele utilizatorilor noștri. Deci, un varchar de 50 de caractere va face bine. Mai târziu, veți vedea că folosim funcția md5() pentru a crea un hash de parolă de bază pentru o securitate simplă.
  5. date_created – aceasta va stoca o valoare time() a momentului în care utilizatorul și-a creat contul.
  6. last_login – putem urmări ultima dată când utilizatorul s-a conectat actualizând această înregistrare aici. Din nou va fi din funcția time ().
  7. stare – urmăriți starea de activare a contului. Putem verifica această valoare pentru a vedea dacă utilizatorul și-a activat contul sau nu și, pe baza acesteia, permiteți-i să se autentifice sau să le dea o notificare pentru a-și activa contul.

Pasul 2: Faceți formularul de înregistrare simplu în HTML/CSS

cu configurarea bazei de date, putem crea formularul de înregistrare real pe care utilizatorul îl va folosi pentru a-și crea contul. La fel ca aproape toate formularele de site-uri web, o vom face cu HTML și CSS.

creați un registru.fișier php pe serverul web

am de gând să sun formularul meu de înregistrare pagina registru.php, deci mergeți mai departe și creați acest fișier pe serverul dvs. web. Vă recomandăm să faceți acest întreg sistem membru pe serverul dvs. web localhost cu xampp (link extern).

creați un antet de navigare de bază

antetul pentru acest tutorial de sistem membru php va fi și unul simplu. Cu câteva link-uri doar pentru unele navigare super-bază. Mai jos este configurarea paginii de bază pentru registrul nostru.fișier 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>

creați formularul de înregistrare real

acum putem crea formularul pe care utilizatorul îl va vedea și interacționa. Dacă vă gândiți la configurarea bazei noastre de date, avem doar 3 câmpuri pe care utilizatorul are posibilitatea de a le introduce: numele de utilizator, parola și adresa de e-mail. Nu uitați să adăugați un text pentru a afișa etichete pentru care sunt necesare câmpuri.

Din bune practici, îmi place să adaug un câmp de parolă suplimentar pentru ca utilizatorul să-și confirme parola. Și asigurați-vă că spuneți utilizatorilor puterea parolei necesară.

urăsc când site-ul web necesită anumite cerințe de parolă, dar nu vă spun aceste cerințe! Idiot.

pentru a obține o parolă sigură pentru contul Utilizatorului, vom avea nevoie de cel puțin 5 caractere. Cu cel puțin un caracter special al unuia dintre acestea:!#$.,:;(). Acest lucru nu va da utilizarea parola cea mai sigură, dar vă va oferi o idee despre cum să forțeze parole mai puternice pentru mai târziu.

<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>

dacă observați, pun formularul nostru de înregistrare într-un tabel simplu doar pentru a alinia totul frumos pentru utilizator. Important de reținut aici este acțiunea formularului (aka POST), numele casetelor de text și numele butonului de trimitere.

sistem membru php - 2 formular de înregistrare php formular de înregistrare utilizator

toate aceste nume de câmp sunt cruciale în scriptul back-end pentru a prelua datele după ce utilizatorul trimite formularul. De asemenea, rețineți metoda formularului, POST, care va ascunde datele formularului de la utilizator în loc să le trimiteți la adresa url, cum ar fi GET will.

Afișați un mesaj de eroare, atunci când este necesar

pe pagina de înregistrare, dvs. și utilizatorul dvs. veți găsi util să afișați efectiv un mesaj de eroare. Atunci când este necesar. O voi pune sub navigare și deasupra formularului de înregistrare. Acest mesaj va oferi utilizatorului o idee despre ceea ce a greșit și trebuie să corecteze înainte de a-și putea crea contul.

practic ceea ce voi face este să creez două variabile, una numită $success și $error_msg. Vom face o verificare simplă pentru aceste două variabile fiind stabilite. Pe baza dacă sunt setate (aka create și atribuite o valoare), afișăm mesajul de eroare aplicabil.

<?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?>

ideea este că, dacă există o eroare în timpul procesării datelor, putem seta mesajul de eroare în variabila $error_msg și apoi va fi afișat utilizatorului și vom procesa informațiile. Dacă utilizatorul își creează cu succes contul, vom seta $success la true și vom afișa un mesaj de succes în verde (deoarece verde este întotdeauna bun, am dreptate??).

Pasul 3: Conectați-vă la baza de date MySQL folosind php

acum putem ajunge la o parte din codul php din spate. Înainte de a putea face orice operațiuni de baze de date MySQL, trebuie să vă conectați la baza de date. Majoritatea site-urilor web se conectează la baza de date într-o configurație separată sau un script de conexiune. Așa că vom face la fel.

creați un nou script php numit connect.php și salvați-l în același director ca și registrul.fișier php.

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

Pasul 4: procesați intrarea formularului de înregistrare

acum până la carnea și cartofii acestui formular simplu de înregistrare. Codul php pentru a procesa formularul după depunerea.

deoarece am creat deja scriptul nostru de conectare la baza de date, putem folosi funcția require_once() pentru a încărca scriptul de conexiune.

<?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?>

apoi, folosind sesiuni php, vom urmări dacă utilizatorii sunt conectați sau nu. Deocamdată vom verifica doar pentru a vedea dacă variabilele sesiunii sunt setate. Vom intra în modul de setare a variabilelor sesiunii în tutorialul formularului de conectare. Dacă utilizatorul este conectat, atunci îl vom redirecționa către pagina de pornire.

obțineți toate datele formularului de înregistrare

odată ce suntem gata să obținem toate datele formularului, mai întâi verificăm dacă butonul de trimitere a fost clic (aka formularul a fost trimis). Dacă a fost atunci vom stoca toate datele de formular în variabile. Dacă formularul nu a fost trimis, atunci nu facem nimic decât să afișăm formularul utilizatorului.

deoarece folosim un tip de formular de postare, trebuie să obținem datele postării folosind codul nostru php. Toate datele „postate” din formular vor fi în variabila $_POST array. Apoi puteți utiliza numele elementului formular ca chei de matrice. Permițându-ne să obținem datele specifice pe care le căutați, astfel:

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

efectuați verificări de bază asupra datelor formularului

în continuare verificăm dacă utilizatorul a completat formularul de înregistrare. Verificarea adresei de e-mail, a numelui de utilizator și a parolelor. Dacă ne asigurăm că fiecare variabilă nu este un șir gol, atunci asta înseamnă că există un text acolo, nu?

apoi verificăm pentru a ne asigura că parola și parola de confirmare sunt exact același text. Capace și toate. Folosind trei semne egale într-un rând (adică ===) în Declarația noastră if, șirurile sunt potrivite.

practic, F vom compara „hello” la „HeLLo” folosind două semne egale, atunci veți obține un rezultat adevărat. Acest lucru se datorează faptului că codul nostru spune „da salut și Salut sunt același cuvânt”. Dar dacă le comparăm folosind trei semne egale, codul nostru este ca ” nu! Oprește-te acolo. Aceste cuvinte nu se potrivesc. Big ol ‘ false!”Are 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.';

în continuare ne putem asigura că parolele îndeplinesc cerințele noastre de rezistență. Ohhh criteriile noastre atât de impresionante pentru o parolă sigură. Cel puțin 5 caractere lungime și folosind cel puțin un caracter special.

folosind strlen() ne asigurăm că este suficient de lung pentru a îndeplini minimul nostru de 5 caractere. Ușor. Apoi, folosind funcția strpbrk (), putem verifica dacă există vreunul dintre caracterele speciale din listă. Această funcție va reveni false dacă nici unul dintre caracterele speciale sunt prezente. Acesta va returna un șir dacă există.

puteți citi mai multe despre funcția de pe php.net referință. Practic, este doar o modalitate foarte rapidă și ușoară de a verifica o listă de caractere speciale existente într-un șir. Pentru că, în afară de cele existente, nu ne pasă cu adevărat de ele.

Pasul 5: Adăugați noi conturi de utilizator în baza de date

acum, că știm că toate datele noastre de formular sunt bune și gata de utilizare, putem începe să facem câteva verificări ale bazei de date. Mai întâi verificăm dacă numele de utilizator este deja în baza de date. Dacă există zero înregistrări returnate, atunci numele de utilizator nu se află în baza de date. Dacă altceva este returnat, atunci numele de utilizator este luat.

în continuare trebuie să creăm câteva variabile suplimentare pentru a stoca unele dintre celelalte date aleatorii pe care trebuie să le stocăm în înregistrarea bazei de date pentru contul de utilizator pe care urmează să îl creăm. Sub acest bloc de cod este o explicație a fiecărei variabile.

DISCLAIMER: vreau să subliniez că în scopul acestui tutorial nu folosim o criptare de parolă foarte complexă. Pur și simplu o fac pentru efectul de a nu stoca parola în text simplu (nu faceți niciodată asta, este doar rău). Dacă doriți să aflați cum să faceți ceva mai substanțial și mai sigur, consultați tutorialul nostru de securitate a parolei. Intru în detalii despre diferite metode de creare și stocare a parolelor mai sigure folosind 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-avem nevoie de un suport de loc pentru id-ul de incrementare automată pe care baza de date îl va atribui.
  • $passwd – adăugăm o criptare de bază la parola utilizatorului folosind hash – ul md5 ()
  • $date_created-folosind funcția time() putem obține o ștampilă de timp în momentul exact în care utilizatorul își creează contul. Putem folosi acest lucru mai târziu pentru a afișa folosind data()
  • $last_login – mai târziu vom folosi acest lucru pentru a urmări când utilizatorul se conectează. O vom seta la zero pentru că nu s-au conectat încă.
  • $status – folosind acest câmp, putem urmări starea conturilor, cum ar fi activarea prin e-mail sau dezactivarea acestuia în scopuri de administrare, sau într-adevăr ceea ce plutește vreodată barca ta. Am de gând să setați la 1 (Unul) în mod implicit, ceea ce înseamnă un cont activ și se pot conecta imediat.

odată ce adăugăm funcția de activare prin e-mail la sistemul nostru de membri, atunci starea contului va intra într-adevăr în joc.

acum putem crea în sfârșit înregistrarea bazei de date pentru contul Utilizatorului. Folosind o interogare de inserare, putem lista foarte atent toate informațiile noastre de înregistrare a bazei de date.

dacă aveți nevoie de ajutor pentru a înțelege elementele de bază ale modului în care funcționează interogările. Sau chiar operațiuni generale de baze de date, verificați alt tutorial meu cu privire la operațiunile de baze de date MySQLi.

după ce introducem înregistrarea, ca o bună practică, mă voi asigura că înregistrarea a fost adăugată efectiv (pentru că nu se știe niciodată, ar fi putut exista un fel de eroare.) Întrucât înainte ne-am asigurat că numele de utilizator nu există, acum dacă verificăm dacă există și găsim o înregistrare cu acesta atribuit, știm că noul nostru cont a fost creat în baza de date. În cele din urmă, tocmai am setat variabila noastră $success la true, deoarece utilizatorul și-a finalizat înregistrarea și contul a fost creat.

// 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.';

retușuri finale pentru formularul nostru de înregistrare

acum cu întregul nostru registru.cod php scris, îl putem vizualiza din browserul web. Puteți chiar să-l testați și să vă creați propriul cont pe noua dvs. pagină de înregistrare!

cu formularul nostru simplu de înregistrare creat, următoarea porțiune a unui sistem membru php este de a crea formularul de conectare. pentru că Ce rost are să ai un formular de înregistrare pentru a crea un cont dacă utilizatorii nu se pot conecta la contul lor?

Cum Ar Fi Încărcarea…

Leave a Reply

Lasă un răspuns

Adresa ta de email nu va fi publicată.