Cara menggunakan coding formulir pendaftaran_ php

Cara menggunakan coding formulir pendaftaran_ php

Show

PlajariKode — Membuat Form Pendaftaran sederhana dengan PHP dan MySQL.

Dalam contoh ini kita menggunakan konsep PBO, formulir pendaftaran berisi kolom Username, Password, Confirm Password, E-mail dan Nama Lengkap.

Kolom Confirm Password digunakan untuk mengecek kecocokan dengan kolom Password yang kemudian akan dicek pada saat validasi disisi server (server-side).

Dengan mengirimkan formulir ini, pendaftar diharapkan untuk menyetujui syarat dan ketentuan. Jadi kolom kotak centang ditambahkan sebelum tombol daftar untuk memastikan itu.

File — file yang akan kita buat diantaranya:

Tapi pertama — tama kita buat dulu databasenya, disini saya buat database dengan nama pendaftaran dan tabel users didalamnya. Berikut struktur untuk tabel users:

Singkatnya, copy lalu pastekan kode berikut pada menu SQL untuk membuat database beserta struktur tabel seperti diatas.

CREATE DATABASE IF NOT EXISTS `pendaftaran`; 
USE `pendaftaran`;
CREATE TABLE `users` (
user_id int NOT NULL PRIMARY KEY AUTO_INCREMENT,
username varchar(30) NOT NULL,
password varchar(60) NOT NULL,
email varchar(30) NOT NULL,
nama_lengkap varchar(60) NOT NULL
);

index.php

Setelah database beserta tabelnya sudah dibuat, sekarang kita buat tampilan untuk form pendaftarannya.

<?phprequire_once 'User.php';if (isset($_POST['submit'])) {

$errorMessage = [];

if (empty($user->validasiUser())) {
if($user->cekMember($_POST['username'], $_POST['email'])) {
session_start();
header('Location: welcome.php');
$_SESSION['nama'] = $_POST['nama_lengkap'];
} else {
$errorMessage[] = "Username atau E-mail sudah terdaftar";
}
} else {
$errorMessage = $user->validasiUser();
}

foreach ($errorMessage as $errors) {
$error = $errors;
}
}
?><!DOCTYPE html>
<html>
<head>
<title>Form Pendaftaran dengan PHP</title>
</head>
<body>
<h2>PlajariKode - Form Pendaftaran dengan PHP dan MySQL</h2>
<form action="" method="post" name="form_pendaftaran" autocomplete="off">
<h4>Form Pendaftaran</h4>

<!-- Pesan error disini -->
<?php
if (isset($error)) {
echo $error;
}
?>

<label>Username</label><br/>
<input type="text" name="username" value="<?php if (isset($_POST['username'])) echo $_POST['username']; ?>"><br/>
<label>Password</label><br/>
<input type="password" name="password" value="<?php if (isset($_POST['password'])) echo $_POST['password']; ?>"><br/>
<label>Confirm Password</label><br/>
<input type="password" name="confirm_password" value="<?php if (isset($_POST['confirm_password'])) echo $_POST['confirm_password']; ?>"><br/>
<label>Nama Lengkap</label><br/>
<input type="text" name="nama_lengkap" value="<?php if (isset($_POST['nama_lengkap'])) echo $_POST['nama_lengkap']; ?>"><br/>
<label>E-mail</label><br/>
<input type="text" name="email" value="<?php if (isset($_POST['email'])) echo $_POST['email']; ?>"><br/>
<input type="checkbox" name="terms">I accept terms and condition<br/>
<button name="submit" type="submit" value="daftar">Daftar</button>
</form>
</body>
</html>

Jika kita jalankan maka akan memunculkan pesan kesalahan dikarenakan file User.php yang belum kita buat.

Dan pada baris kode berikut kita memanggil method untuk validasi, cek user / member dan aksi untuk daftar..

if (isset($_POST['submit'])) {

$errorMessage = [];

if (empty($user->validasiUser())) {
if($user->cekMember($_POST['username'], $_POST['email'])) {
session_start();
header('Location: welcome.php');
$_SESSION['nama'] = $_POST['nama_lengkap'];
} else {
$errorMessage[] = "Username atau E-mail sudah terdaftar";
}
} else {
$errorMessage = $user->validasiUser();
}

foreach ($errorMessage as $errors) {
$error = $errors;
}
}

Koneksi.php

<?phpclass Koneksi
{
var $host = 'localhost';
var $username = 'root';
var $password = '';
var $db_name = 'pendaftaran';
protected $conn = '';
public function __construct()
{
$this->conn = mysqli_connect($this->host, $this->username, $this->password, $this->db_name);
}
}
$conn = new Koneksi;

Untuk mengecek koneksi bisa dengan langsung menuju ke halaman Koneksi.php

User.php

File ini berisi class dan beberapa method untuk validasi, ada juga method untuk mengecek apakah username atau password sudah terdaftar ataukah belum.

Method untuk mendaftar apabila validasi dan cek user terlewati juga ada dalam file ini.

<?phprequire_once 'Koneksi.php';class User extends Koneksi
{
public function validasiUser()
{
$valid = true;
// cek setiap data apakah kosong ataukah tidak
foreach ($_POST as $key => $value) {
if (empty($_POST[$key])) {
$valid = false;
}
}
if ($valid == true) {
if ($_POST['password'] != $_POST['confirm_password']) {
$errorMessage[] = 'Password harus sama';
$valid = false;
}
if (!isset($errorMessage)) {
if (!filter_var($_POST["email"], FILTER_VALIDATE_EMAIL)) {
$errorMessage[] = "E-mail tidak valid";
$valid = false;
}
}
if (! isset($errorMessage)) {
if (! isset($_POST["terms"])) {
$errorMessage[] = "Terima terms and conditions untuk melanjutkan";
$valid = false;
}
}
} else {
$errorMessage[] = "Form pendaftaran harus diisi";
}
if ($valid == false) {
return $errorMessage;
}
return;
}
public function cekMember($username, $email)
{
$sql = "SELECT username, email FROM users WHERE username = '$username' OR email = '$email'";
$q = $this->conn->query($sql);

if ($q->num_rows == 0) {
$this->aksiDaftar();
return true;
}

return;
}
public function aksiDaftar()
{
$username = filter_var($_POST['username'], FILTER_SANITIZE_STRING);
$password = filter_var($_POST['password'], FILTER_SANITIZE_STRING);
$email = filter_var($_POST['email'], FILTER_SANITIZE_STRING);
$nama = filter_var($_POST['nama_lengkap'], FILTER_SANITIZE_STRING);
$sql = "INSERT INTO users VALUES ('', '$username', '$password', '$email', '$nama')";
$q = $this->conn->query($sql);
return $q;
}
}
$user = new User;

welcome.php

Jika pendaftaran berhasil maka akan diarahkan ke file ini.

<?phpsession_start();
echo "Pendaftaran berhasil, selamat datang ".$_SESSION['nama']."!";