Ik ben net begonnen met php (al wel bekend met andere talen) en wil een inlogsysteem maken met mySQL en met een aanmeld form en een log uit knop. Ik heb al wat geprobeerd maar ik krijg telkens een fout te zien. Dit inlog systeem komt in een webapp dus gebruik ik ook jquery. Het volgende is wat ik al heb:
aanmelden.php:
<html>
<head>
<title> Aanmelden </title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta charset="UTF-8">
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.0/jquery.mobile-1.4.0.min.css">
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.4.0/jquery.mobile-1.4.0.min.js"></script>
<style>
.alaangemeld{
text-align:center;
}
a{
text-decoration: none;
}
.hier{
color: #fbc406;
}
</style>
</head>
<body>
<h1 style="text-align:center;"> Aanmelden </h1>
<form action="aanmelden.inc.php" method="post" data-ajax="false">
<input type="text" name="mail" value="" placeholder="E-mail">
<input type="password" name="ww" placeholder="Wachtwoord">
<input type="password" name="wwhh" placeholder="Herhaal wachtwoord">
<button type="submit" name="signup-verzend">Aanmelden</button>
</form>
<br>
<div class="alaangemeld">
<p> Al aangemeld? Klik dan <a href="login.php"><span class="hier">hier</span></a></p>
</div>
</body>
</html
aanmelden.inc.php:
<?php
session_start();
require "../includes/connect.php"; //hier wordt verbinding gemaakt met de database phpmyAdmin
$errors = 0;
$mail = "";
if(isset($_POST['signup-verzend'])){
$mail = $_POST['mail'];
$ww = $_POST['ww'];
$wwhh = $_POST['wwhh'];
// checken voor fouten in invoer
if(empty($mail)) {
$errors = $errors + 1;
}
if(empty($ww)) {
$errors = $errors + 1;
}
if(empty($wwhh)) {
$errors = $errors + 1;
}
if($ww !== $wwhh) {
$errors = $errors + 1;
}
if(!filter_var($mail, FILTER_VALIDATE_EMAIL)) {
$errors = $errors + 1;
}
//kijken of er al iemand is met dezelfde mail
$mailQuery = "SELECT * FROM gb WHERE mail=? LIMIT 1";
$stmt = $conn->prepare($mailQuery);
$stmt->bind_param('s', $email);
$stmt->execute();
$result = $stmt->get_result();
$mailCount = $result->num_rows;
$stmt->close();
if($mailcount > 0){
$errors = $errors + 1;
}
if(count($errors === 0)) {
$wwSecure = password_hash($ww, PASSWORD_DEFAULT);
$token = bin2hex(random_bytes(50));
$verified = false;
$sql ="INSERT INTO gb (mail, ww, verified, token, ww) VALUES (?, ?, ?, ?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param('ssbs', $mail, $verified, $token, $wwSecure);
if($stmt->execute()){
//log automatisch in
$gb_id = $connect->insert_id;
$_SESSION['id'] = $gb_id;
$_SESSION['mail'] = $mail;
$_SESSION['verified'] = $verified;
//een bericht instellen
header("Location:geslaagd.html");
exit();
} else{
$errors = $errors + 1;
}
}else(count($errors > 0)){
header("Location:signup.php/?error=ErIsIetsFoutIngevuld");
exit();
}
}else{
header("Location:signup.php");
}
?>
geslaagd.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<p> U bent aangemeld!</p>
</body>
</html>
login.php:
<html>
<head>
<title> Inloggen </title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta charset="UTF-8">
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.0/jquery.mobile-1.4.0.min.css">
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.4.0/jquery.mobile-1.4.0.min.js"></script>
<style>
.alaangemeld{
text-align:center;
}
a{
text-decoration: none;
}
.hier{
color: #fbc406;
}
</style>
</head>
<body>
<h1 style="text-align:center;"> Inloggen </h1>
<form action="login.inc.php" method="post" data-ajax="false">
<input type="text" name="mail" value="" placeholder="E-mail">
<input type="password" name="ww" placeholder="Wachtwoord">
<button type="submit" name="signup-verzend">Log in</button>
</form>
<br>
<div class="alaangemeld">
<p> Nog niet aangemeld? Klik dan <a href="aanmelden.php"><span class="hier">hier</span></a></p>
</div>
</body>
</html>
Voor login.inc.php heb ik nog niets en weet ook nog niet hoe dit moet. Ik wil eerst ervoor kunnen zorgen dat je kan aanmelden in de website. Ik heb een tutorial gevolgd op youtube dus het zou kunnen dat ik wat heb overgenomen heb en niet heb verklaard, zou u dit ook kunnen vertellen wat ik zou moeten toevoegen, aanpassen, etc.?
Ik hoop dat u mij snapt en mij kan helpen! Ik zie uw bericht graag!
PS: Ik gebruik PHP versie 7.3 op mijn server met de volgende extensies: bcmath, dom, fileinfo, gd, intl, ioncube_loader, json, mbstring,mcrypt, mysqlnd, nd_mysqli, pdo, pdo_mysql, pdo_sqlite, phar, posix, soap, sockets, xmlwriter, xmlreader, xsl, zip
,groetjes Sem