Postingan lainnya
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