Dit is een handleiding voor het maken van een aanmeldingssysteem met behulp van PHP, MySQL en HTML. Uw website moet dynamisch zijn en uw bezoekers moeten er direct toegang toe hebben. Daarom willen ze zich zo vaak mogelijk aanmelden. Het aanmeldingsverificatiesysteem is zeer gebruikelijk voor elke webtoepassing. Het stelt geregistreerde gebruikers in staat om toegang te krijgen tot de website en functies die alleen voor leden zijn. Het is ook handig wanneer we informatie voor gebruikers willen opslaan. Het omvat alles, van winkelsites, educatieve sites en lidmaatschapssites, enzovoort.
Enterprise System Management and Security | Schrijf u in voor de gratis cursus*
*Affiliate link. Zie Gebruiksvoorwaarden.
Deze handleiding bestaat uit 5 delen.
Inhoudsopgave
- Vereisten
- Aanmeldingssysteem
- Login-systeem
- Welkomstpagina
- Uitlogscript
1) Vereisten voor het bouwen van een PHP-aanmeldingssysteem
Om met succes deze handleiding te volgen en een PHP-inlogsysteem te bouwen, moet je de volgende zaken hebben en bekend zijn met:
- Een server die PHP ondersteunt om je code uit te voeren
- Kennis van en bekendheid met HTML en CSS
- Een MySQL-database geïnstalleerd op je apparaat, en kennis van hoe het te gebruiken
- Vermogen om alle juiste beveiligingsmaatregelen toe te voegen aan je inlogsysteem
Als je aan al deze basisvereisten en kennisniveaus voldoet, dan ben je klaar om verder te gaan naar de volgende stappen om te leren hoe je je PHP-inlogsysteem kunt bouwen.
2) Een aanmeldingssysteem bouwen
In dit deel zullen we een aanmeldingssysteem creëren waarmee gebruikers een nieuw account kunnen aanmaken in het systeem. Onze eerste stap is het maken van een HTML-registratieformulier. Het formulier is vrij eenvoudig te maken. Het vraagt alleen om een naam, e-mail, wachtwoord en bevestiging van het wachtwoord. E-mailadressen zullen uniek zijn voor elke gebruiker. Meerdere accounts met hetzelfde e-mailadres zijn niet toegestaan. Het zal een foutmelding tonen aan de gebruikers die proberen meerdere accounts te maken met hetzelfde e-mailadres.
Stap 1: Registratieformulier maken in HTML
We zullen een PHP-bestand maken met de naam register.php met de volgende code erin. Dit is een eenvoudig HTML-formulier met enkele basisvalidatie. Als je niet bekend bent met HTML, kun je het vinden op veel online sites die kant-en-klare html5 inlogformuliersjablonen aanbieden.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Sign Up</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-12">
<h2>Register</h2>
<p>Please fill this form to create an account.</p>
<form action="" method="post">
<div class="form-group">
<label>Full Name</label>
<input type="text" name="name" class="form-control" required>
</div>
<div class="form-group">
<label>Email Address</label>
<input type="email" name="email" class="form-control" required />
</div>
<div class="form-group">
<label>Password</label>
<input type="password" name="password" class="form-control" required>
</div>
<div class="form-group">
<label>Confirm Password</label>
<input type="password" name="confirm_password" class="form-control" required>
</div>
<div class="form-group">
<input type="submit" name="submit" class="btn btn-primary" value="Submit">
</div>
<p>Already have an account? <a href="login.php">Login here</a>.</p>
</form>
</div>
</div>
</div>
</body>
</html>
De uitvoer van het bovenstaande HTML-formulier zal er zo uitzien.
Alle invoervelden zijn vereist door de "required"
attribuut toe te voegen, wat het standaard HTML-attribuut is. Het gebruik van type="email"
zal het e-mailadres valideren dat door gebruikers is opgegeven en geeft een foutmelding als het e-mailadres niet geldig is. Voor het registratieformulier hebben we bootstrap gebruikt voor snelle ontwikkeling. Als je tijd wilt besparen op HTML-code, kun je altijd enkele gratis html5-sjablonen voor je project gebruiken.
Stap 2: Het aanmaken van de MySQL-databasetabel
Je moet een nieuwe database aanmaken met een geschikte naam naar keuze. Voer vervolgens de onderstaande SQL-query uit om de gebruikerstabel aan te maken in je nieuw aangemaakte MySQL-database.
CREATE TABLE `users` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(75) NOT NULL,
`password` varchar(255) NOT NULL,
`email` varchar(100) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1;
Stap 3: Het aanmaken van het configuratiebestand van de database
Nu hebben we de gebruikerstabel aangemaakt. Laten we een nieuw PHP-bestand maken met de naam config.php om verbinding te maken met de MySQL-database. Plak de volgende code in het bestand config.php en verander de databasenaam naar wat je maar wilt tijdens het maken van de database.
Stap 4: Het maken van een sessiebestand
Laten we een bestand maken met de naam session.php. In dit bestand zullen we de sessie starten en controleren of een gebruiker al is ingelogd, zo ja dan zullen we de gebruiker doorverwijzen naar het bestand welcome.php.
Stap 5: Maak een registratieformulier in PHP
Het is eindelijk tijd om een PHP-code te maken waarmee gebruikers hun accounts in het systeem kunnen registreren. Deze PHP-code zal gebruikers waarschuwen met een fout als een gebruiker al is geregistreerd met hetzelfde e-mailadres.
Vervang de volgende code in het bestand register.php.
prepare("SELECT * FROM users WHERE email = ?")) {
$error = '';
// Bind parameters (s = string, i = int, b = blob, enz.), in ons geval is de gebruikersnaam een string dus gebruiken we "s"
$query->bind_param('s', $email);
$query->execute();
// Bewaar het resultaat zodat we kunnen controleren of het account bestaat in de database.
$query->store_result();
if ($query->num_rows > 0) {
$error .= 'The email address is already registered!
';
} else {
// Valideer wachtwoord
if (strlen($password ) < 6) {
$error .= 'Password must have atleast 6 characters.
';
}
// Valideer bevestig wachtwoord
if (empty($confirm_password)) {
$error .= 'Please enter confirm password.
';
} else {
if (empty($error) && ($password != $confirm_password)) {
$error .= 'Password did not match.
';
}
}
if (empty($error) ) {
$insertQuery = $db->prepare("INSERT INTO users (name, email, password) VALUES (?, ?, ?);");
$insertQuery->bind_param("sss", $fullname, $email, $password_hash);
$result = $insertQuery->execute();
if ($result) {
$error .= 'Your registration was successful!
';
} else {
$error .= 'Something went wrong!
';
}
}
}
}
$query->close();
$insertQuery->close();
// Sluit DB-verbinding
mysqli_close($db);
}
?>
Sign Up
Register
Please fill this form to create an account.
Zodra de gebruiker op de verzendknop klikt, controleert het of $_SERVER["REQUEST_METHOD"] == "POST"
en $_POST['submit']
een variabele is ingesteld. Voor beveiligingsredenen raden we altijd aan om het wachtwoord niet als platte tekst in de database op te slaan. We hebben de password_hash()
functie gebruikt die een nieuw wachtwoord-hash maakt met behulp van een sterke one-way hashing-algoritme.
Het bovenstaande PHP-script zal valideren dat er geen gebruiker is geregistreerd met hetzelfde e-mailadres en ook het wachtwoord valideren. Nadat de validatie is bevestigd, slaan we de door de gebruiker verstrekte informatie op in de gebruikerstabel en waarschuwen we de gebruiker dat de registratie succesvol was.
3) Bouwen van een Inlogsysteem
In dit deel zullen we een loginformulier maken om gebruikers toegang te geven tot het beperkte gebied van het systeem. In ons geval is het beperkte gebied een welkomstpagina die we in het volgende deel zullen behandelen.
Stap 1: Een Inlogformulier maken in HTML
Hieronder staat het inlogformulier in HTML. Plak het in een bestand met de naam login.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Login</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-12">
<h2>Login</h2>
<p>Please fill in your email and password.</p>
<form action="" method="post">
<div class="form-group">
<label>Email Address</label>
<input type="email" name="email" class="form-control" required />
</div>
<div class="form-group">
<label>Password</label>
<input type="password" name="password" class="form-control" required>
</div>
<div class="form-group">
<input type="submit" name="submit" class="btn btn-primary" value="Submit">
</div>
<p>Don't have an account? <a href="register.php">Register here</a>.</p>
</form>
</div>
</div>
</div>
</body>
</html>
De uitvoer van de bovenstaande code zal er zo uitzien
Stap 2: Een Inlogsysteem maken in PHP
Na het maken van het aanmeldingsformulier in HTML, zullen we een code schrijven om de aanmeldingsgegevens te valideren. Bij het verzenden van het formulier controleren we of het e-mailadres en wachtwoord zijn ingevuld. Als ze zijn ingevuld, zullen we een SELECT
-query uitvoeren om het record in een database te vinden op basis van e-mailadres en wachtwoord. Als er een record wordt gevonden, zullen we de "userID"
in de sessie opslaan en wordt de gebruiker doorgestuurd naar het bestand welcome.php, anders wordt de gebruiker geïnformeerd met een foutmelding.
Laten we de volgende code vervangen in het bestand login.php.
Please enter email.';
}
// valideren of wachtwoord leeg is
if (empty($password)) {
$error .= 'Please enter your password.
';
}
if (empty($error)) {
if($query = $db->prepare("SELECT * FROM users WHERE email = ?")) {
$query->bind_param('s', $email);
$query->execute();
$row = $query->fetch();
if ($row) {
if (password_verify($password, $row['password'])) {
$_SESSION["userid"] = $row['id'];
$_SESSION["user"] = $row;
// Stuur de gebruiker door naar de welkomstpagina
header("location: welcome.php");
exit;
} else {
$error .= 'The password is not valid.
';
}
} else {
$error .= 'No User exist with that email address.
';
}
}
$query->close();
}
// Sluit de verbinding
mysqli_close($db);
}
?>
Login
Login
Please fill in your email and password.
4) Een welkomstpagina maken
Hieronder staat de code voor het bestand welcome.php. Gebruikers worden naar deze pagina doorgestuurd na een succesvol aanmeldingsproces. We hebben wat code toegevoegd aan de bovenkant van de pagina om te controleren of de gebruiker niet is ingelogd, dan wordt de gebruiker doorgestuurd naar de aanmeldpagina.
Laten we een welcome.php bestand maken en de volgende code erin plakken.
Welcome
Hello, . Welcome to demo site.
5) Het uitlogscript
Tenslotte, laten we een logout.php bestand maken met de volgende code erin.
Zodra de gebruiker op de Log Out link klikt, wordt het bovenstaande script aangeroepen om de sessie te beëindigen en de gebruiker door te verwijzen naar het bestand login.php.
Conclusie
In deze tutorial heb ik uitgelegd hoe je een inlogsysteem kunt maken met behulp van HTML, PHP en MySQL. Zodra je begrijpt hoe eenvoudig het is om een inlogsysteem te maken, kun je andere functies toevoegen zoals wachtwoord resetten, wachtwoord vergeten, e-mailadres verifiëren, gebruikersprofiel bewerken, enz.
Source:
https://dzone.com/articles/create-a-login-system-using-php