kun se tulee tehdä sivustoja reaalimaailmassa, joilla on yksinkertainen rekisteröintilomake on elintärkeää. Internet on käytännössä rakennettu jäsenyyssivustoilla. Joten osana minun php jäsenjärjestelmän tutorial series, luomme yksinkertaisen rekisteröintilomakkeen php.
melko nopea ja helppo kirjoittaa tyhjästä, tällä yksinkertaisella rekisterilomakkeella kuka tahansa käyttäjä voi rekisteröityä pelkällä käyttäjätunnuksella, sähköpostilla ja salasanalla, mutta sähköpostin voi halutessaan helposti lisätä.
for a very simple overview of the source code for our php registration page is this:
<?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>
Kuinka tehdä yksinkertainen rekisteröintilomake php: ssä
- luoda tietokanta rekisteröintilomakkeelle
- tee yksinkertainen rekisteröintilomake HTML/CSS: ssä
- Yhdistä MySQL-tietokantaan php: llä
- prosessi rekisteröintilomakkeen syöttö
- lisää uusia käyttäjätilejä tietokantaan
Vaihe 1: Luo tietokanta rekisteröintilomakkeelle
usein verkkosivuston tekemisen ensimmäinen vaihe on tietokannan luominen. Ja varmasti, sinun täytyy todennäköisesti tehdä muutoksia tietokantaan myöhemmin. Mutta tietokannan perustaminen ensin antaa sinulle loistavan lähtökohdan
luomme yksinkertaisen tietokannan, johon tallennetaan kaikki käyttäjän tilitiedot, mukaan lukien käyttäjätunnus ja salasana. Mene eteenpäin ja kirjaudu phpMyAdmin Ohjauspaneeli palvelimeen. (if you are new to phpMyAdmin, check out my intro to phpMyAdmin article)
Database fields for our php membership system
Every database needs a name, and as I like to keep life simple, let ’ s call our database ”users”.
HUOM: oletan, että sinulla on jo ainakin perustiedot phpMyAdminin käytöstä ja MySQL-tietokantojen toiminnasta. Jos ei, niin voit lukea phpMyAdmin perusteet tai MySQL tietokannan toimintaa täällä HeyTuts.com. (nämä linkit avautuvat uusiin välilehtiin)
koska teemme yksinkertaista rekisteröintilomaketta, tarvitsemme tietokantaamme vain 7 kenttää. Näin saamme heti riittävästi perustoimintoja. Mutta silti voi lisätä lisäominaisuuksia, kuten salasanan palautuslomakkeen.
- id-tämä tulee olemaan yksilöllinen tunniste jokaiselle käyttäjälle. Meidän on varmistettava, että id-kenttä on kokonaisluku ja asetettu automaattiseen lisäykseen ensisijaisella avaimella. Tämä on pakko!!! Kun edetään monimutkaisempiin jäsenjärjestelmiin, käyttäjän tilitunnuksen käyttäminen tekee tietokantatallenteiden yhdistämisestä erittäin helppoa.
- käyttäjätunnus-tämän pitäisi olla itsestään selvää. Asetin omani 50 merkin varchariin. Hyvin harvoin käyttäjä haluaa käyttäjätunnuksen pidemmäksi kuin 10-15 merkkiä, joten 50 pitäisi huolehtia siitä. Mutta tämä antaa sinulle myös mahdollisuuden asettaa haluamasi käyttäjätunnuksen pituus php-koodi.
- Sähköposti-käyttäjän sähköpostiosoite. Aseta se 100 merkin varchar.
- salasana – käytämme käyttäjiemme salasanoihin jonkinlaista perussalausta. 50 merkin varchar kelpaa siis mainiosti. Myöhemmin, näet meidän käyttää MD5 () toiminto luoda perus salasana hash joitakin yksinkertaisia turvallisuutta.
- date_created-tähän tallennetaan aika (), jolloin käyttäjä loi tilinsä.
- last_login-voimme seurata käyttäjän viimeksi kirjautumista päivittämällä tämän tietueen tähän. Jälleen tulee aika () funktio.
- status-track the account aktivation status. Voimme tarkistaa tämän arvon nähdäksesi, onko käyttäjä aktivoinut tilinsä vai ei, ja sen perusteella he voivat kirjautua sisään tai antaa heille ilmoituksen aktivoida tilinsä.
Vaihe 2: Tee yksinkertainen rekisteröintilomake HTML/CSS
tietokannan asennuksen avulla voimme luoda varsinaisen rekisteröintilomakkeen, jota käyttäjä käyttää tilin luomiseen. Kuten melko paljon kaikki sivuston lomakkeet, teemme sen HTML ja CSS.
luo Rekisteri.php-tiedosto www-palvelimellasi
aion soittaa ilmoittautumislomakkeen sivurekisteriin.php, joten mennä eteenpäin ja luoda tämän tiedoston web-palvelimelle. Suosittelen tekemään tämän koko jäsenjärjestelmä localhost web server XAMPP (ulkoinen linkki).
Create a basic navigation header
the header for this php member system tutorial will be a simple one too. Muutama linkki vain joitakin super basic navigointi. Alla on perussivun asetukset meidän Rekisteri.php-tiedosto.
<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>
luo varsinainen rekisteröintilomake
nyt voimme luoda lomakkeen, jonka käyttäjä aikoo nähdä ja jonka kanssa hän on vuorovaikutuksessa. Jos muistelet tietokannan asetuksia, meillä on vain 3 kenttää, jotka käyttäjä voi syöttää: käyttäjätunnus, salasana ja sähköpostiosoite. Älä unohda lisätä tekstiä näyttääksesi nimilappuja, joihin tarvitaan kenttiä.
Hyvän käytännön ulkopuolella haluan lisätä käyttäjälle ylimääräisen salasanakentän salasanan vahvistamiseksi. Ja muista kertoa käyttäjille salasanan vahvuus tarvitaan.
saada turvallinen salasana käyttäjän tilille, tarvitsemme vähintään 5 merkkiä pitkä. Ainakin yksi erikoismerkki näistä: !#$.,:;(). Tämä tapa antaa käyttö turvallisin salasana, mutta se antaa sinulle käsityksen siitä, miten pakottaa vahvempia salasanoja myöhemmin.
<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>
jos huomaat, laitan rekisterilomakkeemme yksinkertaiseen taulukkoon vain kohdistaakseni kaiken hienosti käyttäjälle. Tärkeää huomata tässä on lomaketoiminto (aka POST), nimet tekstiruutuja ja nimi Lähetä-painiketta.
kaikki nämä kentät nimet ovat ratkaisevia back-end script hakea tietoja sen jälkeen, kun käyttäjä lähettää lomakkeen. Huomaa myös lomakemenetelmä, POST, joka piilottaa lomaketiedot käyttäjältä sen sijaan, että lähettäisi sen URL-osoitteeseen, kuten GET will.
Näytä Virheilmoitus, tarvittaessa
Rekisteri-sivulla sinä ja käyttäjäsi havaitsette hyödylliseksi näyttää virheilmoituksen. Tarvittaessa. Laitan sen navigoinnin alle ja rekisterilomakkeen yläpuolelle. Tämä viesti antaa käyttäjälle käsityksen siitä, mitä he tekivät väärin ja täytyy korjata ennen kuin he voivat luoda tilin.
periaatteessa aion luoda kaksi muuttujaa, joista toisen nimi on $success ja $error_msg. Teemme yksinkertainen tarkistaa nämä kaksi muuttujaa on asetettu. Perustuu jos ne on asetettu (alias luotu ja määritetty arvo), näytämme sovellettavan virheilmoituksen.
<?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?>
ajatuksena on, että jos tietojen käsittelyssä on virhe, voimme asettaa virheviestin muuttujaan $error_msg, jolloin se tulee näkyviin käyttäjälle ja käsittelemme tietoja. Jos käyttäjä luo käyttäjätilinsä onnistuneesti, asetamme $Successin arvoon true ja näytämme menestysviestin vihreällä (koska vihreä on aina hyvä, olenko oikeassa??).
Vaihe 3: Yhdistä MySQL-tietokantaan käyttämällä php
voimme nyt saada joitakin back end php koodi. Ennen kuin voimme tehdä mitään MySQL-tietokannan toimintoja, sinun täytyy muodostaa yhteys tietokantaan. Useimmat verkkosivustot kytkeytyvät tietokantaan erillisellä kokoonpanolla tai yhteyskomentosarjalla. Teemme siis samoin.
Luo uusi PHP-skripti nimeltä connect.php ja tallenna se samaan hakemistoon kuin Rekisteri.php-tiedosto.
<?php $conn = mysqli_connect("localhost", "root", "password", "code_projects");?>
Vaihe 4: käsitellään rekisteröintilomakkeen syöttö
nyt tämän yksinkertaisen rekisteröintilomakkeen liha ja peruna. Php-koodi lomakkeen käsittelyn jälkeen.
koska olemme jo luoneet tietokantayhteyssarjamme, Voimme käyttää require_once () – toimintoa yhteyden komentosarjan lataamiseen.
<?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?>
sitten PHP-istuntoja käyttäen seuraamme, ovatko käyttäjät kirjautuneet sisään vai eivät. Nyt me vain tarkistaa, jos istunnon muuttujat on asetettu. Pääsemme miten asettaa istunnon muuttujat kirjautumislomakkeen opetusohjelma. Jos käyttäjä on kirjautunut sisään, ohjaamme heidät kotisivulle.
Hanki kaikki ilmoittautumislomakkeen tiedot
kun olemme valmiit saamaan kaikki lomaketiedot, tarkistamme ensin, onko Lähetä-painiketta napsautettu (eli lomake on toimitettu). Jos se oli sitten tallennamme kaikki muoto tiedot muuttujia. Jos lomaketta ei ole toimitettu, emme tee muuta kuin näytämme lomakkeen käyttäjälle.
koska käytämme lomaketyyppiä POST, meidän on saatava postitiedot php-koodillamme. Kaikki” lähetetty ” tiedot lomakkeesta on $_POST array muuttuja. Voit sitten käyttää muotoa elementin nimeä array-näppäiminä. Voimme saada etsimäsi tiedot näin.:
if (isset($_POST)){ // get all of the form data $username = $_POST; $email = $_POST; $passwd = $_POST; $passwd_again = $_POST; // next code block }
tee perustarkistukset lomakkeen tiedoille
seuraavaksi tarkistamme täyttikö käyttäjä ilmoittautumislomakkeen. Tarkistan sähköpostiosoitteen, käyttäjätunnuksen ja salasanat. Jos varmistamme, että jokainen muuttuja ei ole tyhjä merkkijono, se tarkoittaa, että siellä on jonkin verran tekstiä, eikö?
sitten tarkistamme, että salasana ja vahvista salasana ovat täsmälleen samaa tekstiä. Lippikset ja kaikki. Käyttämällä kolmea yhtä merkkiä peräkkäin (joka on ===) meidän if lausuma, jouset ovat tapauksessa hyväksytty.
periaatteessa, f vertaamme ”Hei” ja ” Hei ” käyttäen kahta yhtä merkkiä, niin saat todellisen tuloksen. Tämä johtuu siitä, että koodissamme lukee ”Kyllä Hei ja hei ovat sama sana”. Mutta jos vertaamme niitä kolmella yhtäläisellä merkillä, koodimme on kuin ” ei! Pysähdy siihen. Nuo sanat eivät täsmää. Iso Vale!”Käy järkeen?
// 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.';
seuraavaksi varmistamme, että salasanat täyttävät vahvuusvaatimuksemme. Meidän ohhh niin vaikuttava kriteerit turvallisen salasanan. Vähintään 5 merkkiä pitkä ja käyttää vähintään yhtä erikoismerkkiä.
käyttämällä strleniä() varmistamme, että se on tarpeeksi pitkä täyttämään 5 merkin minimimme. Helppo. Sitten käyttämällä strpbrk () funktio voimme tarkistaa, jos jokin erikoismerkkejä luettelossa on läsnä. Funktio palauttaa false-arvon, jos yhtään erikoismerkkiä ei ole. Se palauttaa merkkijonon, jos niitä on.
voit lukea lisää funktiosta php.net viite. Pohjimmiltaan, se on vain erittäin nopea ja helppo tapa tarkistaa luettelon erikoismerkkejä olemassa merkkijono. Koska olemassaoloa lukuun ottamatta emme välitä heistä.
Vaihe 5: Lisää uusia käyttäjätilejä tietokantaan
nyt kun tiedämme, että kaikki lomaketietomme ovat hyviä ja käyttövalmiita, voimme alkaa tehdä joitakin tietokantatarkistuksia. Ensin Tarkistamme, onko käyttäjätunnus jo tietokannassa. Jos palautettuja tietueita on nolla, käyttäjätunnus ei ole tietokannassa. Jos jotain muuta palautetaan, niin käyttäjätunnus otetaan.
seuraavaksi meidän täytyy luoda joitakin lisämuuttujia tallentaaksemme joitakin muita satunnaisia tietoja, jotka meidän täytyy tallentaa sen käyttäjätilin tietokantatallenteeseen, jota olemme luomassa. Tämän koodilohkon alla on kunkin muuttujan selitys.
vastuuvapauslauseke: haluan huomauttaa, että tässä opetusohjelmassa emme käytä kovin monimutkaista salasanojen salausta. Olen yksinkertaisesti tekee sen vaikutus ei tallentaa salasanaa pelkkää tekstiä (älä koskaan tee sitä, se on vain huono). Jos haluat oppia tekemään jotain merkittävämpää ja turvallista, tutustu salasanasuojaus opetusohjelma. Menen yksityiskohtaisesti eri menetelmiä luoda ja tallentaa turvallisempia salasanoja 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 – tarvitsemme paikan haltijan automaattisen korotuksen tunnus, että tietokanta antaa.
- $passwd-lisäämme joitakin perussalausta käyttäjän salasanaan käyttäen MD5() hash
- $date_created – time () – toimintoa, jonka avulla saamme aikaleiman juuri sillä hetkellä, kun käyttäjä luo tilinsä. Voimme käyttää tätä myöhemmin näyttää käyttämällä päivämäärä ()
- $last_login-myöhemmin käytämme tätä seurata, kun käyttäjä kirjautuu sisään. Asetamme sen nollaan, koska he eivät ole vielä kirjautuneet sisään.
- $status – käyttämällä tätä kenttää, voimme seurata tilien tilaa, kuten aktivoimalla sähköpostilla tai poistamalla sen käytöstä admin-tarkoituksiin, tai todella mitä ikinä kelluu veneessäsi. Aion asettaa 1 (yksi) oletuksena, eli aktiivinen tili ja voi kirjautua välittömästi.
nyt voimme vihdoin luoda tietokantatallenteen käyttäjän tilille. Käyttämällä INSERT-kyselyä, voimme hyvin huolellisesti luetella kaikki tietokantatallenteemme tiedot.
jos tarvitset apua kyselyiden perusteiden ymmärtämisessä. Tai jopa yleisiä tietokantatoimintoja, tarkista toinen opetusohjelma MySQLi – tietokantatoiminnoista.
kun levy on lisätty, Aion hyvänä käytäntönä varmistaa, että levy todella lisättiin (koska eihän sitä koskaan tiedä, siinä olisi voinut olla jonkinlainen virhe.) Koska ennen varmistimme, että käyttäjätunnusta ei ole olemassa, nyt jos Tarkistamme onko se olemassa ja löydämme tietueen sen kanssa, tiedämme, että uusi tili luotiin tietokantaan. Lopuksi me vain asettaa $success muuttuja true koska käyttäjä suorittanut rekisteröinnin ja heidän tili luotiin.
// 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.';
viimeinen silaus ilmoittautumislomakkeelle
nyt koko rekisteriin.PHP-koodi kirjoitettu, voimme tarkastella sitä web-selaimesta. Voit jopa testata sitä ja luoda oman tilin uudella Rekisteri sivu!
yksinkertaisen rekisteröintilomakkeen avulla PHP: n jäsenjärjestelmän seuraava osa on kirjautumislomakkeen luominen. koska mitä järkeä on ottaa rekisteröintilomake luoda tilin, jos käyttäjät eivät voi kirjautua tililleen?