0% found this document useful (0 votes)
14 views2 pages

APICRUD

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views2 pages

APICRUD

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 2

GNU nano 7.

2
APICrud.php
'result' => mysqli_query($connection, $sql) ? 'OK' : 'ERR',
'message' => mysqli_error($connection),
];
break;

// ✅ Tambahan login
case 'login':
$tbl = $_POST['tbl'] ?? '';
$username = strtolower(trim($_POST['username'] ?? ''));
$password = $_POST['password'] ?? '';

// Validasi nama tabel


$allowedTables = ['accounts'];
if (!in_array($tbl, $allowedTables)) {
$respon[$index] = [
'result' => 'FAILED',
'message' => 'Table tidak diizinkan'
];
break;
}

// Validasi username
if (!preg_match('/^[a-z0-9]{4,20}$/', $username)) {
$respon[$index] = [
'result' => 'FAILED',
'message' => 'Username tidak valid (4-20 karakter huruf/angka)'
];
break;
}

if (empty($password)) {
$respon[$index] = [
'result' => 'FAILED',
'message' => 'Password tidak boleh kosong'
];
break;
}

// Query aman pakai prepared statement


$stmt = mysqli_prepare($connection, "SELECT id, username, password FROM $tbl
WHERE username = ?");
mysqli_stmt_bind_param($stmt, "s", $username);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
$user = mysqli_fetch_assoc($result);

if ($user && $user['password'] === $password) {


// Atau jika password_hash():
// if (password_verify($password, $user['password'])) {
$respon[$index] = [
'result' => 'OK',
'message' => 'Login berhasil',
'id' => $user['id'],
'username' => $user['username']
];
} else {
$respon[$index] = [
'result' => 'ERR',
'message' => 'Username atau password salah'
];
}

break;

// ===== OUTPUT JSON =====


echo json_encode($respon, JSON_PRETTY_PRINT);

^G Help ^O Write Out ^W Where Is ^K Cut ^T Execute


^C Location M-U Undo M-A Set Mark M-] To Bracket M-Q
Previous ^B Back ^◂ Prev Word ^A Home ^P Prev Line
M-▴ Scroll Up
^X Exit ^R Read File ^\ Replace ^U Paste ^J Justify
^/ Go To Line M-E Redo M-6 Copy ^Q Where Was M-W Next
^F Forward ^▸ Next Word ^E End ^N Next Line M-▾ Scroll
Down

You might also like