Postingan lainnya
Buku Ini Koding!
Baru!
Buku ini akan jadi teman perjalanan kamu belajar sampai dapat kerjaan di dunia programming!
Membuat User Registration PHP dan MYSQL
Mengapa user registration tidak bisa dibuat dan selalu mengeluarkan notifikasi seperti ini "Database error: failed to register" ? Apakah ada yang salah dengan kodingan saya ?
file koneksi.php
<?php
define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PASS', '');
define('DB_NAME', 'user-verification');
$conn = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
if($conn -> connect_error){
die("Database error:" . $conn -> connect_error); }
file controller.php
<?php
session_start();
require "koneksi.php";
$errors = array();
$username = "";
$email = "";
if (isset($_POST["register"])){
$username = $_POST['username'];
$email = $_POST['email'];
$password = $_POST['password'];
$password_konfirm = $_POST['password_konfirm'];
if (empty($username)) {
$errors['username'] = "Membutuhkan username!";
}if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$errors['email'] = "email yang dimasukkan invalid!";
}if (empty($email)) {
$errors['email'] = "Membutuhkan email!";
}if (empty($password)) {
$errors['password'] = "Membutuhkan password!";
}if ($password !== $password_konfirm) {
$errors['password'] = "password dan password konfirmasi tidak sama!";
}
$emailQuery ="SELECT * FROM users WHERE email=? LIMIT 1";
$stmt = $conn->prepare($emailQuery);
$stmt->bind_param('s', $email);
$stmt->execute();
$result = $stmt->get_result();
$userCount = $result->num_rows;
$stmt->close();
if ($userCount > 0) {
$errors['email'] = "Email sudah ada";
}
if (count($errors) === 0) {
$password = password_hash($password, PASSWORD_DEFAULT);
$token = bin2hex(random_bytes(50));
$verified = false;
$sql = "INSERT INTO users (username, email, verified, token, password) VALUES (?, ?, ?, ?, ?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param('ssbss', $username, $email, $verified, $token, $password);
if ($stmt->execute()){
$user_id = $conn->insert_id;
$_SESSION['id'] = $user_id;
$_SESSION['username'] = $user_username;
$_SESSION['email'] = $user_email;
$_SESSION['verified'] = $user_verified;
$_SESSION['message'] = "Silahkan login sekarang!";
$_SESSION['alert-class'] = "alert-success";
header('location: index.php');
exit();
}else {
$errors['db_error'] = "Database error: failed to register";
}
}
}
?>
file register.php
<?php require_once "header.php"; ?>
<?php require "controller.php"; ?>
<div class="container">
<div class="row">
<div class="col-md-8 offset-md-2">
<div class="card">
<div class="card-header bg-info">
<h3 class="display-4 text-light">Daftar</h3>
</div>
<div class="card-body">
<?php if(count($errors) > 0): ?>
<div class="alert alert-danger">
<?php foreach($errors as $error){ ?>
<li><?php echo $error; ?></li>
<?php } ?>
</div>
<?php endif; ?>
<form action="register.php" method="POST">
<div class="form-group">
<label>Username</label>
<input type="text" name="username" value="<?php echo $username; ?>" class="form-control form-control-lg">
</div>
<div class="form-group">
<label>Email</label>
<input type="email" name="email" value="<?php echo $email; ?>" class="form-control form-control-lg">
</div>
<div class="form-group">
<label for="password">Password</label>
<input for="password" type="password" name="password" class="form-control form-control-lg">
</div>
<div class="form-group">
<label>Password Konfirmasi</label>
<input type="password" name="password_konfirm" class="form-control form-control-lg">
</div>
<div class="form-group">
<button type="submit" name="register" class="btn btn-info btn-block btn-md">Daftar</button>
</div>
<p class="text-small">Sudah memiliki akun? <a href="login.php">Login</a></p>
</form>
</div>
</div>
</div>
</div>
</div>
<?php require_once "footer.php"; ?>
file index.php
<?php require_once "header.php"; ?>
<?php require "controller.php"; ?>
<div class="container">
<div class="row">
<div class="col-md-8 offset-md-2">
<div class="card border-secondary">
<div class="card-body">
<div class='alert <?php echo $_SESSION['alert-class']; ?>' >
<?php echo $_SESSION['message'] ?>
</div>
<h2 class="display-3 mb-4">Selamat Datang, <?php echo $_SESSION['username']; ?> </h2>
<a href="#" class="text-danger">logout</a>
<?php if(!$_SESSION['verified']): ?>
<div class="alert alert-warning mt-4">
Anda perlu memverifikasi akun Anda. Dengan asuk ke akun email Anda dan klik tautan verifikasi yang baru saja kami kirimi Anda email di <strong>admin@gmail.com</strong>
</div>
<button type="button" class="btn btn-block btn-lg btn-success mt-4">Saya sudah verifikasi!</button>
<?php endif; ?>
</div>
</div>
</div>
</div>
</div>
<?php require_once "footer.php"; ?>
Mohon bantuannya;) ...
0
Belum ada Jawaban. Jadi yang pertama Jawaban
Login untuk ikut Jawaban