PHP

Cara Buat Registrasi Dan Login Pada PHP

Pada artikel ini saya akan membagi tahu kamu bagaimana cara buat form registrasi dan login menggunakan PHP pastikan kamu sudah mempunyai pemahaman dasar PHP agar bisa lebih lanjut membaca artikel ini. Simak saja langsung di bawah!


Pendahuluan

Kita tahu bahasa pemrograman PHP itu hanya untuk di gunakan membangun website saja hal ini cocok bagi kamu yang ingin jadi web developer atau programmer web jika kamu ingin menggunakan bahasa pemrograman PHP pastikan kamu sudah tahu teknologi web seperti html, css, javascript(opsional). Nah sesuai yang saya bilang di atas tadi pada artikel ini saya akan buat form registrasi dan juga form login ini juga semoga bisa jadi referensi belajar bahasa pemrograman PHP kamu jangan lupa ya nyalakan web server nya pada software XAMPP.


Buat Form Registrasi

Nah pertama kamu buat file registrasi.php copy dan paste kode di bawah ini :

<?php
//koneksi kan database
include_once 'database.php';

//cek jika user sudah menekan tombol registrasi
if(isset($_POST["registrasi"])){
    //maka user baru berhasil di tambahkan
	  if(registrasi($_POST)>0){	 
		echo "
		<script>
		alert('User baru berhasil di tambahkan, silakan login terlebih dahulu!');
		document.location.href='login.php';
		</script>
		";
          //selain user belum mendaftar
	  }else{
          //maka user gagal di tambahkan
		 echo "
		<script>
		alert('User baru gagal di tambahkan!');
		document.location.href='registrasi.php';
		</script>
		";
	  }
  }

?>

<html>
<head>
<title>Registrasi</title>    
</head>
    
<body>   
<!--    Buat form-->
<form method="post">
<!--    Buat label dan inputan username-->
    <label for="username">Username :</label>
    <input type="text" id="username" name="username" autocomplete="off" maxlength="16" required>
    <br>
<!--    Buat label password dan inputan password-->
    <label for="password">Password :</label>
    <input type="password" id="password" name="password" autocomplete="off" required>
    <br>
<!--    Buat konfirmasi password-->
     <label for="password2">Konfirmasi Password : </label>
    <input type="password" id="password2" name="password2" autocomplete="off" required>
        <br>
<!--    Buat tombol apakah user pria-->
    <label for="pria">Pria</label>
    <input type="radio" id="pria" name="jenis_kelamin" value="pria" required>
<!--    Buat tombol apakah user perempuan-->
    <label for="perempuan">Perempuan</label>
    <input type="radio" id="perempuan" name="jenis_kelamin" value="perempuan" required>
    <br>
<!--    Berikan petunjuk jika user sudah punya akun untuk login-->
    <a href="login.php">Sudah Pernah Login? Login!</a>
    <br>
<!--    Buat tombol kirim-->
    <button type="submit" name="registrasi">Kirim!</button>
</form>
</body>
</html>

Buat login

Kedua kamu buat file login.php copy dan paste kode di bawah ini :

<?php
//buat sesi untuk mengizinkan dahulu agar bisa masuk ke halaman utama
session_start();
//koneksi kan database
include_once 'database.php';

//cek jika user menekan tombol login
  if(isset($_POST["login"])){
	 $username = mysqli_real_escape_string($conn, $_POST["username"]); 
	 $password = mysqli_real_escape_string($conn, $_POST["password"]); 
      
	  // variabel $result untuk menyiapkan data username pada user ketika user benar memasukkan username
	  $result = mysqli_query($conn, "SELECT * FROM users_blog WHERE username = '$username'");
	  
	  //jika username benar ataupun data dari database ada
	  if(mysqli_num_rows($result) === 1){
          //ambil data dari database pada variabel $result
		  $row = mysqli_fetch_assoc($result);
          //cek jika password valid
		  if(password_verify($password, $row["password"])){
               // maka set session  
			  $_SESSION["login"]=true;
              // dan pindahkan user ke halaman utama
			  header("Location: index.php");	
//              selain user salah memasukkan password
		  }else{
              //Maka lemparkan kesalahan berikut
			  echo "<script>
			  alert('Maaf login anda salah!');
			document.location.href='login.php';
			  </script>";
			  
		  }
          //jika tidak ada username dan password yang benar (kedua nya salah)
	  }if(mysqli_num_rows($result) === 0){
//          maka lemparkan kesalahan berikut
		  echo "<script>
			  alert('Maaf login anda salah!');
			document.location.href='login.php';
			  </script>";
	  }
	  
  }
?>

<html>
<head>
<title>Login</title>    
</head>
    
<body>   
<!--    Buat form-->
<form method="post">
<!--    Buat label dan inputan username-->
    <label for="username">Username :</label>
    <input type="text" id="username" name="username" autocomplete="off" required>
    <br>
<!--    Buat label password dan inputan password-->
    <label for="password">Password :</label>
    <input type="password" id="password" name="password" autocomplete="off" required>
    <br>
    <!--    Berikan petunjuk jika user belum registrasi-->
    <a href="registrasi.php">Belum Registrasi? Registrasi!</a>
    <br>
<!--    Buat tombol kirim-->
    <button type="submit" name="login">Login!</button>
</form>
</body>
</html>

Buat Halaman Utama

Ketiga kamu buat file index.php hal ini agar bisa menunjukkan user itu sudah masuk ke halaman utama :

<?php
//buat sesi untuk mengizinkan dahulu agar bisa masuk ke halaman utama
session_start();
//koneksi kan database
include_once 'database.php';

//jika tombol login belum di tekan
if(!isset($_SESSION["login"])){
    //maka paksa user tetap berada ke halaman login
	header("Location: login.php");
	exit;
}
// untuk menampilkan username pada halaman utama
$query = mysqli_query($conn, "SELECT * FROM users_blog");
while($row = mysqli_fetch_assoc($query)){
 $user = $row['username'];  
}
?>

<html>
<head>
<title>Halaman Utama</title>    
</head>
    
<body>
<!--    Tampilkan user-->
    <p>Selamat datang <?php echo $user; ?></p>
</body>
</html>

Buat Database

Terakhir kamu harus buat file database nya dan ini juga nanti ada kode function nya kamu buat dengan nama database.php copy dan paste kode di bawah ini :

<?php
//koneksi kan database
$conn = mysqli_connect("localhost", "root", "", "blog");

//registrasi 
function registrasi($data){
    //fungsi global agar menangkap variabel global ($conn)
	global $conn;
	 //ambil data dari form registrasi
	$username = stripslashes(mysqli_real_escape_string($conn, $data["username"]));
	$jenis_kelamin = $data["jenis_kelamin"];
	$password = mysqli_real_escape_string($conn, $data["password"]);
	$password2 = mysqli_real_escape_string($conn, $data["password2"]);
	
	//cek username sudah ada atau belum dalam database
	$result = mysqli_query($conn, "SELECT username FROM users_blog WHERE username = '$username'");
	
    //jika pengambilan data dari database dalam fungsi mysqli_fetch_assoc itu sudah ada di database
	if(mysqli_fetch_assoc($result)){
//        maka berikan pesan berikut
		echo "
		   <script>
		   alert('Username sudah terdaftar!');
		   </script>
		";
		return false;
	}
	
	//cek jika konfirmasi password tidak sesuai
	if($password!==$password2){
//        maka lemparkan pesan kesalahan berikut
		echo "<script>
		 alert('Konfirmasi password tidak sesuai!');
		</script>";
		return false;
	}
	// enkripsi password
	$password = password_hash($password, PASSWORD_DEFAULT);	
	//tambahkan user baru ke database
	mysqli_query($conn, "INSERT INTO users_blog VALUES('', '$username', '$password', '$jenis_kelamin')");   
     //kembalikan data yang terpengaruh dan tambahkan ke database	
	return mysqli_affected_rows($conn);
}
?>

Penutup

Nah itulah yang bisa saya bagikan ke kamu bagaimana cara buat registrasi dan login pada PHP kode di atas bisa kamu edit lagi. Semoga bermanfaat :D