Gmail sekarang tidak mengizinkan login dengan password biasa. Kamu wajib membuat App Password.

Solusi:

  1. Aktifkan 2-Step Verification di Gmail kamu.

  2. Buka: https://myaccount.google.com/apppasswords

  3. Buat App Password, misalnya untuk "Mail" → "Other" → iFishCare.

  4. Copy password-nya (16 karakter, contoh: abcd efgh ijkl mnop)

  5. Pakai ini:


$mail->Password = 'abcd efgh ijkl mnop'; // App Password, bukan password biasa


Kode:

 <?php

require_once "../konmysqli.php";

require_once __DIR__ . '/../vendor/autoload.php'; // Autoload Composer

use PHPMailer\PHPMailer\PHPMailer;

use PHPMailer\PHPMailer\Exception;

$respon = array();

if (isset($_GET['nama_pengguna'], $_GET['email'], $_GET['telepon'], $_GET['password'], $_GET['konfirmasi_password'])) {

    // Ambil data dari GET

    $nama_pengguna = $_GET['nama_pengguna'];

    $foto = $_GET['foto'] ?? ''; // Optional

    $email = $_GET['email'];

    $telepon = $_GET['telepon'];

    $username = $_GET['username'] ?? $email; // Default username = email jika tidak diisi

    $password = $_GET['password'];

    $konfirmasi_password = $_GET['konfirmasi_password'];

    // Default value

    $level = "Pekerja";

    $status = "Aktif";

    $keterangan = "Register By Mobile";

    // Validasi password

    if ($password !== $konfirmasi_password) {

        $respon["sukses"] = 0;

        $respon["pesan"] = "Password dan konfirmasi tidak cocok.";

        echo json_encode($respon);

        exit();

    }

    // Enkripsi password (lebih aman)

    $password_hash = password_hash($password, PASSWORD_BCRYPT);

    $sql = "INSERT INTO `$tbpengguna` (

        `id_pengguna`, `nama_pengguna`, `foto`, `level`, `username`, `password`, `telepon`, `email`, `status`, `keterangan`

    ) VALUES (

        '', 

        '$nama_pengguna',

        '$foto',

        '$level',

        '$username',

        '$password_hash',

        '$telepon',

        '$email',

        '$status',

        '$keterangan'

    )";

    $simpan = process($conn, $sql);

    if ($simpan) {

        $mail = new PHPMailer(true);

        try {

            $mail->isSMTP();

            $mail->Host = 'smtp.gmail.com';

            $mail->SMTPAuth = true;

            $mail->Username = 'nicomarvels07@gmail.com';        

            $mail->Password = 'xgbt hmpz tnvz rxtm';          

            $mail->SMTPSecure = 'tls';

            $mail->Port = 587;

            $mail->setFrom('nicomarvels07@gmail.com', 'Admin iFishCare');

            $mail->addAddress($email, $nama_pengguna);

            $mail->isHTML(true);

            $mail->Subject = 'Konfirmasi Pendaftaran iFishCare';

            $mail->Body = "

                <h3>Hai $nama_pengguna!</h3>

                <p>Terima kasih telah mendaftar di <strong>iFishCare</strong>.</p>

                <p>Akun kamu berhasil dibuat dan sekarang aktif.</p>

                <br>

                <p>Salam,<br>Tim Admin iFishCare</p>

            ";

            $mail->send();

            $respon["sukses"] = 1;

            $respon["pesan"] = "Pendaftaran berhasil & email terkirim.";

        } catch (Exception $e) {

            $respon["sukses"] = 1;

            $respon["pesan"] = "Pendaftaran berhasil, tapi email gagal dikirim: {$mail->ErrorInfo}";

        }

    } else {

        $respon["sukses"] = 0;

        $respon["pesan"] = "Gagal menyimpan data pengguna.";

    }

} else {

    $respon["sukses"] = 0;

    $respon["pesan"] = "Data tidak lengkap.";

}

echo json_encode($respon);

?>