HeyTuts

als het aankomt op het maken van websites voor de echte wereld, is een eenvoudig registratieformulier voor essentieel. Het internet is praktisch gebouwd in lidmaatschap websites. Dus als onderdeel van mijn php member system tutorial serie, zullen we een eenvoudig registratieformulier in php maken.

vrij snel en eenvoudig te schrijven vanuit het niets, dit eenvoudige register formulier laat elke gebruiker registreren met slechts een gebruikersnaam, e-mail en wachtwoord, maar u kunt eenvoudig een e-mail toevoegen als u dat wilt.

Voor een zeer eenvoudig overzicht van de bron code voor de php-registratie-pagina is deze:

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

Hoe Maak je een Eenvoudige Registratie-Formulier in php

  1. het Aanmaken van de database voor de registratie vorm
  2. de eenvoudige registratie-formulier in HTML/CSS
  3. Verbinding maken met de MySQL database met behulp van php
  4. het Verwerken van de registratie-formulier input
  5. Toevoegen nieuwe gebruiker-accounts om de database

Stap 1: Het aanmaken van de database voor de registratie vorm

Vaak is de eerste stap van het maken van een website is de database te maken. En zeker, je zal waarschijnlijk nodig hebben om wijzigingen aan te brengen in uw database later. Maar het opzetten van uw database eerst, zal u een geweldig startpunt

geven we zullen een eenvoudige database maken om alle accountgegevens van de gebruiker op te slaan, inclusief hun gebruikersnaam en wachtwoord. Ga je gang en log in op uw phpMyAdmin control panel op uw server. (als je nieuw bent bij phpMyAdmin, bekijk dan mijn intro bij phpMyAdmin artikel)

Databasevelden voor ons php-lidmaatschapssysteem

elke database heeft een naam nodig, en aangezien ik het leven graag simpel houd, noemen we onze database “gebruikers”.

opmerking: Ik neem aan dat u al op zijn minst een basiskennis hebt van het gebruik van phpMyAdmin en hoe MySQL databases werken. Zo niet, dan kunt u lezen over phpMyAdmin basics of MySQL database operatie hier op HeyTuts.com. (deze links worden geopend in nieuwe tabbladen)

aangezien we een eenvoudig registratieformulier maken, hebben we slechts 7 velden nodig in onze database. Zo krijgen we meteen voldoende basisfunctionaliteit. Maar kan nog steeds extra functies zoals een wachtwoord reset formulier toe te voegen.

  1. id-Dit wordt een unieke identificatie voor elke gebruiker. We moeten er zeker van zijn dat het id-veld een integer is en op auto increment is ingesteld met een primaire sleutel. Dit is een must!!! Wanneer de voortgang naar meer complexe lid systemen, met behulp van de gebruiker account-id maakt het super eenvoudig om database records aan elkaar te koppelen.
  2. gebruikersnaam-dit moet vanzelfsprekend zijn. Ik zet de mijne op een 50 karakter varchar. Zeer zelden zal de gebruiker willen een gebruikersnaam langer dan 10-15 tekens, dus 50 moet zorgen voor het. Maar dit geeft je ook de mogelijkheid om de gewenste gebruikersnaamlengte in te stellen in je php code.
  3. e-mailadres: het e-mailadres van de gebruiker. Stel het een 100 karakter varchar.
  4. wachtwoord-we zullen wat basisversleuteling gebruiken voor de wachtwoorden van onze gebruikers. Dus een varchar van 50 karakters is goed genoeg. Later zul je zien dat we de MD5() functie gebruiken om een basiswachtwoord hash aan te maken voor een eenvoudige beveiliging.
  5. date_created-dit zal een time() waarde opslaan van wanneer de gebruiker zijn account heeft aangemaakt.
  6. last_login-we kunnen de laatste keer dat de gebruiker ingelogd is volgen door dit record hier bij te werken. Opnieuw zal zijn van de time () functie.
  7. status-volg de activeringsstatus van het account. We kunnen deze waarde controleren om te zien of de gebruiker zijn account heeft geactiveerd of niet, en op basis daarvan laten ze inloggen of geef ze een bericht om hun account te activeren.

Stap 2: Maak het eenvoudige registratieformulier in HTML / CSS

met de database-instellingen kunnen we het eigenlijke registratieformulier maken dat de gebruiker zal gebruiken om zijn account aan te maken. Zoals vrijwel alle website formulieren, zullen we het maken met HTML en CSS.

Maak een register aan.php bestand op uw webserver

ik ga mijn registratie formulier paginaregister bellen.php, dus ga je gang en maak dit bestand op uw webserver. Ik raad aan om dit hele lidsysteem op uw localhost webserver te maken met XAMPP (Externe link).

Maak een basis navigatie header

de header voor deze php member system tutorial zal ook een eenvoudige zijn. Met een paar links alleen voor wat super basic navigatie. Hieronder vindt u de basis Pagina-instelling voor ons register.php bestand.

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

Create the actual registration form

nu kunnen we het formulier maken dat de gebruiker gaat zien en gebruiken. Als u terugdenkt aan onze database setup, we hebben slechts 3 velden die de gebruiker heeft de mogelijkheid om in te voeren: de gebruikersnaam, wachtwoord en e-mailadres. Vergeet niet om wat tekst toe te voegen om labels weer te geven waarvoor velden vereist zijn.

uit goede praktijk wil ik een extra wachtwoordveld toevoegen voor de gebruiker om zijn wachtwoord te bevestigen. En zorg ervoor dat de gebruikers het wachtwoord sterkte vereist.

ik haat het als website ‘ s vereisen bepaalde wachtwoordvereisten, maar niet vertellen u deze vereisten! Idiote.

om een veilig wachtwoord voor het gebruikersaccount te krijgen, hebben we minstens 5 tekens nodig. Met minstens één speciaal karakter van één van deze: !#$.,:;(). Dit zal niet geven het gebruik van de meest veilige wachtwoord, maar het zal u een idee van hoe sterker wachtwoorden te dwingen om uw later te geven.

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

Als u merkt, zet ik ons register formulier in een eenvoudige tabel om alles netjes uit te lijnen voor de gebruiker. Het belangrijkste om hier op te merken is de vorm actie (aka POST), de namen van de tekstvakken en de naam van de knop Verzenden.

php member system - 2 php registration form user register form

al deze veldnamen zijn cruciaal in het back-end script om de gegevens op te halen nadat de gebruiker het formulier indient. Let ook op de vorm methode, POST, die de vorm gegevens van de gebruiker zal verbergen in plaats van het te verzenden naar de url zoals GET will.

Toon een foutmelding, indien nodig

op de registerpagina zullen u en uw gebruiker het nuttig vinden om een foutmelding daadwerkelijk te tonen. Wanneer nodig. Ik zal het onder de navigatie en boven het inschrijfformulier zetten. Dit bericht zal de gebruiker een idee geven van wat ze verkeerd hebben gedaan en moeten corrigeren voordat ze hun account kunnen aanmaken.

wat ik eigenlijk ga doen is twee variabelen aanmaken, één genaamd $success en $error_msg. We zullen een eenvoudige controle doen voor deze twee variabelen die worden ingesteld. Op basis van of ze zijn ingesteld (ook bekend als created and assigned a value), geven we de toepasselijke foutmelding weer.

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

het idee is dat als er een fout is tijdens het verwerken van de gegevens, we de Foutmelding in de $error_msg variabele kunnen instellen, en dan zal het worden weergegeven aan de gebruiker en we zullen strop verwerking van de info. Als de gebruiker met succes zijn account aanmaakt, zetten we $ success op true en geven we een succesbericht in groen weer (omdat groen Altijd goed is, heb ik gelijk??).

Stap 3: Maak verbinding met de MySQL database met behulp van php

we kunnen nu naar een deel van de back-end php code. Voordat we je enige MySQL database operaties kunnen doen, moet je verbinding maken met de database. De meeste websites maken verbinding met de database in een aparte configuratie of verbindingsscript. Dus wij zullen hetzelfde doen.

Maak een nieuw php-script aan met de naam connect.php en sla het op in dezelfde directory als het register.php bestand.

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

Stap 4: De invoer van het registratieformulier

verwerken tot het vlees en de aardappelen van dit eenvoudige registratieformulier. De php code om het formulier te verwerken na indiening.

omdat we ons database-verbindingsscript al hebben aangemaakt, kunnen we de functie require_once() gebruiken om het verbindingsscript te laden.

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

met behulp van php sessies, zullen we bijhouden of gebruikers zijn aangemeld of niet. Voor nu zullen we gewoon controleren of de sessievariabelen zijn ingesteld. We zullen ingaan op het instellen van de sessievariabelen in de login form tutorial. Als de gebruiker is ingelogd, dan zullen we hen omleiden naar de home page.

haal alle gegevens van het registratieformulier

zodra we klaar zijn om alle gegevens van het formulier te krijgen, controleren we eerst of op de knop Verzenden werd geklikt (ook bekend als het formulier werd ingediend). Als dat zo was, slaan we alle formuliergegevens op in variabelen. Als het formulier niet is ingediend, dan doen we niets anders dan het formulier weer te geven aan de gebruiker.

omdat we een vormtype van POST gebruiken, moeten we de POSTGEGEVENS verkrijgen met behulp van onze php-code. Alle “gepost” gegevens van het formulier zullen in de $_POST array variabele staan. U kunt dan de naam van het formulierelement gebruiken als de array-toetsen. Zodat wij de specifieke gegevens kunnen krijgen die u zoekt, zoals dit:

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

voer basiscontroles uit op de formuliergegevens

vervolgens controleren we of de gebruiker het registratieformulier heeft ingevuld. Controleren op het e-mailadres, gebruikersnaam en wachtwoorden. Als we er zeker van zijn dat elke variabele geen lege tekenreeks is, dan betekent dat dat er wat tekst in zit, toch?

dan controleren we of het wachtwoord en het wachtwoord exact dezelfde tekst zijn. Petjes en zo. Door het gebruik van drie gelijke tekens op een Rij (dat is ===) in onze if statement, de strings zijn case matched.

in principe, als we “hallo” vergelijken met” Hallo ” met behulp van twee gelijke tekens dan krijg je een waar resultaat. Dit komt omdat onze code zegt “ja hallo en hallo zijn hetzelfde woord”. Maar als we ze vergelijken met behulp van drie gelijke tekens, onze code is als ” nee! Stop daar. Die woorden komen niet overeen. Grote valse!”Logisch?

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

vervolgens kunnen we ervoor zorgen dat de wachtwoorden voldoen aan onze krachtvereisten. Onze ohhh zo indrukwekkende criteria voor een veilig wachtwoord. Ten minste 5 tekens lang en met ten minste één speciaal teken.

met strlen() zorgen we ervoor dat het lang genoeg is om aan ons minimum van 5 tekens te voldoen. Gemakkelijk. Met behulp van de strpbrk () functie kunnen we controleren of een van de speciale tekens in de lijst aanwezig is. Deze functie retourneert false als geen van de speciale tekens aanwezig is. Het geeft een string terug als die aanwezig is.

u kunt meer lezen over de functie op de php.net referentie. Kortom, het is gewoon een super snelle en gemakkelijke manier om te controleren op een lijst met speciale tekens die in een string bestaan. Want buiten het bestaan geven we niet echt om ze.

Stap 5: Voeg nieuwe gebruikersaccounts toe aan de database

nu we weten dat al onze formuliergegevens goed zijn en klaar voor gebruik, kunnen we beginnen met het uitvoeren van een aantal database-controles. Eerst controleren we of de gebruikersnaam al in de database staat. Als er geen records worden geretourneerd, dan staat de gebruikersnaam niet in de database. Als er iets anders wordt geretourneerd, dan wordt de gebruikersnaam genomen.

vervolgens moeten we enkele extra variabelen maken om enkele van de andere willekeurige gegevens op te slaan die we nodig hebben om op te slaan in het databaserecord voor het gebruikersaccount dat we gaan aanmaken. Onder dit codeblok is een uitleg van elk van de variabelen.

DISCLAIMER: Ik wil er wel op wijzen dat we voor deze handleiding geen zeer complexe wachtwoordversleuteling gebruiken. Ik doe het gewoon voor het effect van het niet opslaan van het wachtwoord in platte tekst (doe dat nooit, het is gewoon slecht). Als je wilt leren hoe je iets meer substantieel en veilig te doen, bekijk onze password security tutorial. Ik ga in detail op verschillende methoden voor het maken en opslaan van meer veilige wachtwoorden met behulp van 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 – we hebben een plaatshouder nodig voor de auto incrementing id die de database zal toewijzen.
  • $passwd-we voegen wat basisversleuteling toe aan het wachtwoord van de gebruiker met behulp van de MD5() hash
  • $date_created – met behulp van de time() functie kunnen we een tijdstempel krijgen op het exacte moment dat de gebruiker zijn account aanmaakt. We kunnen dit later gebruiken om date()
  • $last_login weer te geven – later zullen we dit gebruiken om bij te houden wanneer de gebruiker zich aanmeldt. We zetten het op nul omdat ze nog niet ingelogd zijn.
  • $status-met behulp van dit veld kunnen we de accounts status volgen, zoals het activeren via e-mail of het uitschakelen voor admin doeleinden, of echt wat er ooit drijft uw boot. Ik ga instellen op 1 (een) standaard, wat betekent dat een actieve account en kan onmiddellijk inloggen.

zodra we de e-mail activering functie toe te voegen aan ons lid systeem, dan is de account status zal echt in het spel komen.

nu kunnen we eindelijk de database record voor het account van de gebruiker. Met behulp van een insert query, kunnen we heel zorgvuldig een lijst van al onze database record informatie.

als u hulp nodig hebt bij het begrijpen van de basis van hoe query ‘ s werken. Of zelfs algemene database operaties, check mijn andere tutorial op MySQLi database operaties.

nadat we het record invoegen, als een goede praktijk, ga ik ervoor zorgen dat het record daadwerkelijk is toegevoegd (want je weet maar nooit, er kan een soort fout zijn geweest.) Sinds voordat we ervoor zorgden dat de gebruikersnaam niet bestond, nu als we controleren om te zien of het bestaat en we vinden een record met het toegewezen we weten dat onze nieuwe account is gemaakt in de database. Tot slot hebben we gewoon onze $ success variabele ingesteld op true omdat de gebruiker hun registratie heeft voltooid en hun account is gemaakt.

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

laatste hand voor ons registratieformulier

nu met ons volledige register.php code geschreven, kunnen we het bekijken vanuit de webbrowser. Je kunt het zelfs testen en je eigen account aanmaken op je nieuwe registerpagina!

met het ons eenvoudige registratieformulier aangemaakt, is het volgende deel van een php-lidsysteem het aanmaken van het aanmeldformulier. want wat is het nut van een registratieformulier om een account aan te maken als gebruikers niet kunnen inloggen op hun account?

Zoals Laden…

Leave a Reply

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.