Postingan lainnya
Buku Ini Koding!
Baru!
Buku ini akan jadi teman perjalanan kamu belajar sampai dapat kerjaan di dunia programming!
selalu error apabila login
Pas masuk ke function nya selalu masuk ke bagian else nya, dan nge-return false mulu
cuplikan kode function
function cek_data($nis, $pass){
global $link;
// kalo ada mysql injection
$pass = mysqli_real_escape_string($link, $pass);
$nis = mysqli_real_escape_string($link, $nis);
$query = "SELECT Password FROM users WHERE NIS = '$nis'";
$result = mysqli_query($link, $query);
$hash = mysqli_fetch_assoc($result)["Password"];
if ( password_verify ($pass, $hash) ){
die('berhasil');
}else{
die('eror');
}
}
ini tempat function nya dipake
if( !empty(trim($nis)) && !empty(trim($pass)) ){
if( login_cek_nama($nis) ){
// mengecek data
if( cek_data($nis, $pass) ){
$_SESSION["user"] = $nis;
header('Location: index.php');
}else{
echo 'data ada yang salah ';
}
}else{
echo 'namanya belum terdaftar';
}
}else{
echo 'tidak boleh kosong';
}
}
selalu nge-return "data ada yang salah", Nah salahnya dimana?
4 Jawaban:
coba seperti ini, Kak. rubah query select-nya seperti dibawah ini, Kak.
function cek_data($nis, $pass){
global $link;
// kalo ada mysql injection
$pass = mysqli_real_escape_string($link, $pass);
$nis = mysqli_real_escape_string($link, $nis);
$query = "SELECT * FROM users WHERE NIS = '$nis' AND Password = '$pass'";
$result = mysqli_query($link, $query);
$hash = mysqli_fetch_assoc($result);
if ( password_verify ($pass, $hash) ){
die('berhasil');
}else{
die('eror');
}
}
Gak ada yang salah sih, kyknya itu nama tablenya atau kolomnya mungkin salah,
**saran : biasain kalo nama kolom konsisten atau variable apapun, itu Password "P" nya kapital tapi giliran NIS kapital semua
Pada waktu register passwordnya di disimpan pakai password_hash() ga? password_verify() cuma bisa digunakan untuk pengecekan password yang di hash menggunakan password_hash() aja, selain itu pasti return false.
Coba di tampilkan kode saat registrasi juga, biar lebih jelas.
@rachmatsasongko
function register_user($nis, $nama, $pass){
// untuk mencari variabel link di script lain
global $link;
$nama = mysqli_real_escape_string($link, $nama);
$pass = mysqli_real_escape_string($link, $pass);
$nis = mysqli_real_escape_string($link, $nis);
$pass = password_hash($pass, PASSWORD_DEFAULT);
$query = "INSERT INTO users (NIS, Nama, Password ) VALUES ('$nis', '$nama', '$pass')";
if( mysqli_query($link, $query) ){
return true;
}else {
return false;
}
}
waktu di print_r var $hash nya juga hasilnya udah passsword yang udah di hash,
@naufalhfzhn gak ngeh gan kalo NIS pake huruf kecil :D
@bumiharum kalo gitu kan harus milih lagi data yang mau dipilih nya gan