Cara Membuat Fitur Edit Profil Menggunakan PHP dan MySQL

Cara Membuat Fitur Edit Profil Menggunakan PHP dan MySQL
Kucatat.com,

Setelah berhasil membuat sistem login dan logout, langkah berikutnya adalah memberikan kemampuan kepada pengguna untuk mengubah informasi akun mereka sendiri. Fitur Edit Profil memungkinkan pengguna memperbarui data seperti nama lengkap, username, email, maupun informasi lainnya yang tersimpan di database.

Pada tutorial ini, kita akan membuat halaman edit_profile.php yang menampilkan data pengguna yang sedang login, kemudian menyimpan perubahan tersebut ke database menggunakan Prepared Statement agar lebih aman.

Prasyarat

Sebelum mengikuti tutorial ini, pastikan Anda sudah memiliki:

  • Sistem login menggunakan PHP dan MySQL.
  • File config.php yang berisi koneksi database dan session_start().
  • Halaman dashboard.php.
  • Tabel users yang berisi data pengguna.

Contoh struktur tabel users:

Baca Juga:

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nama VARCHAR(100),
    username VARCHAR(50),
    email VARCHAR(100),
    password VARCHAR(255),
    role VARCHAR(20)
);

Membuat Halaman Edit Profil

Buat file baru dengan nama edit_profile.php, kemudian masukkan kode berikut.

<?php
require_once 'config.php';

if (!isset($_SESSION['login'])) {
    header("Location: login.php");
    exit;
}

$username = $_SESSION['username'];

$query = $koneksi->prepare("SELECT * FROM users WHERE username = ?");
$query->bind_param("s", $username);
$query->execute();
$user = $query->get_result()->fetch_assoc();
?>

<!DOCTYPE html>
<html>
<head>
    <title>Edit Profil</title>
    <style>
        body{
            font-family:Arial;
            background:#f5f5f5;
        }

        .box{
            width:400px;
            margin:40px auto;
            background:#fff;
            padding:20px;
            border-radius:8px;
            box-shadow:0 0 10px rgba(0,0,0,.1);
        }

        input{
            width:100%;
            padding:10px;
            margin-bottom:15px;
        }

        button{
            padding:10px 20px;
        }
    </style>
</head>
<body>

<div class="box">

<h2>Edit Profil</h2>

<form action="proses_edit_profile.php" method="post">

<input type="text"
name="nama"
value="<?= htmlspecialchars($user['nama']); ?>"
required>

<input type="text"
name="username"
value="<?= htmlspecialchars($user['username']); ?>"
required>

<input type="email"
name="email"
value="<?= htmlspecialchars($user['email']); ?>"
required>

<button type="submit">
Simpan Perubahan
</button>

</form>

</div>

</body>
</html>

Kode tersebut akan mengambil data pengguna berdasarkan username yang tersimpan pada session, kemudian menampilkan data tersebut ke dalam form sehingga dapat diubah.

Membuat Proses Edit Profil

Selanjutnya buat file proses_edit_profile.php.

<?php

require_once 'config.php';

if (!isset($_SESSION['login'])) {
    header("Location: login.php");
    exit;
}

$nama = trim($_POST['nama']);
$username = trim($_POST['username']);
$email = trim($_POST['email']);

$username_lama = $_SESSION['username'];

$query = $koneksi->prepare("
UPDATE users
SET
nama=?,
username=?,
email=?
WHERE username=?
");

$query->bind_param(
"ssss",
$nama,
$username,
$email,
$username_lama
);

if($query->execute()){

    $_SESSION['username']=$username;

    header("Location: dashboard.php?success=Profil berhasil diperbarui");

}else{

    header("Location: edit_profile.php?error=Gagal memperbarui profil");

}

Script di atas akan memperbarui data pengguna berdasarkan username yang sedang login. Jika proses berhasil, session username juga diperbarui agar tetap sinkron dengan data terbaru.

Baca Juga:

Menambahkan Menu Edit Profil

Agar pengguna dapat mengakses halaman edit profil, tambahkan tautan berikut pada dashboard.php.

<p>
<a href="edit_profile.php">Edit Profil</a>
</p>

<p>
<a href="logout.php">Logout</a>
</p>

Setelah login, pengguna dapat memilih menu Edit Profil, mengubah data yang diinginkan, lalu menyimpannya kembali ke database.

Cara Kerja Edit Profil

Alur proses edit profil adalah sebagai berikut:

  1. Pengguna login ke sistem.
  2. Session menyimpan identitas pengguna.
  3. Halaman edit_profile.php mengambil data berdasarkan session.
  4. Form menampilkan data yang tersimpan di database.
  5. Pengguna mengubah informasi profil.
  6. Data dikirim ke proses_edit_profile.php.
  7. Database diperbarui.
  8. Session diperbarui apabila username berubah.
  9. Pengguna kembali ke dashboard.

Dengan alur tersebut, setiap pengguna hanya dapat mengubah data miliknya sendiri.

Baca Juga:

Tips Keamanan

Beberapa hal berikut sangat disarankan sebelum fitur ini digunakan pada aplikasi produksi:

  • Validasi format email sebelum menyimpan data.
  • Pastikan username baru belum digunakan oleh pengguna lain.
  • Gunakan htmlspecialchars() saat menampilkan data untuk mencegah serangan Cross Site Scripting (XSS).
  • Gunakan Prepared Statement seperti contoh di atas agar terhindar dari SQL Injection.
  • Tambahkan validasi panjang karakter untuk nama dan username.

Kesimpulan

Fitur Edit Profil merupakan salah satu bagian penting dalam sistem manajemen pengguna. Dengan fitur ini, pengguna dapat memperbarui informasi akun mereka tanpa harus meminta bantuan administrator.

Pada tutorial ini Anda telah mempelajari cara mengambil data pengguna berdasarkan session, menampilkannya ke dalam form, memperbarui data menggunakan Prepared Statement, serta menyinkronkan session setelah proses penyimpanan berhasil.

Pada artikel berikutnya, kita akan membahas cara membuat fitur Ubah Password menggunakan password_hash() dan password_verify() agar sistem login menjadi lebih aman dan sesuai dengan standar keamanan PHP modern.

Baca Juga:

Belum ada komentar

Kucatat Kucatat