Postingan lainnya
PHP function password_verify
Gan saya punya masalah dengan password verifynya udah seharian dicari masalahnya ga ketemu mungkin agan disini bisa bantu saya untuk memecahkan masalahnya hehe
ini code di login.php
<?php
require_once 'core/init.php';
require_once 'view/header.php';
//VALIDASI
if(isset($_POST['submit'])){
$username = $_POST['username'];
$password = $_POST['password'];
//die($username." ".$password);
if (!empty(trim($username)) && !empty(trim($password))) {
cek_data($username,$password);
}else {
echo "Silahkan masukan datanya terlebih dahulu :)";
}
}
?>
<form action="login.php" method="post">
<label for="">Nama</label> <br>
<input type="text" name="username"> <br><br>
<label for="">Password</label> <br>
<input type="password" name="password"><br><br>
<input type="submit" name="submit" value="Login">
</form>
<?php
require_once 'view/footer.php';
?>
dan ini function cek_data()
function cek_data($username,$password){
global $link;
//anti sqlinjection
$username = mysqli_real_escape_string($link,$username);
$password = mysqli_real_escape_string($link,$password);
$query = "SELECT password FROM users WHERE username = '$username'";
$result = mysqli_query($link,$query);
$hash = mysqli_fetch_assoc($result)["password"];
//$hash = password_verify('$password',$hash);
//print_r($result);
if (password_verify($password,$hash)) {
echo "berhasil";
}else {
echo "gagal";
}
}
nah perasaan saya sudah bener ngikutin videonya dan saya sudah berulang kali periksa penulisan perasaan gaada yg salah tp kenapa ya hasilnya gagal terus , di print_r sudah ketemu usernamenya dan password hashnya juga sudah ketemu tp ntah kenapa bisa gagal , tolong pencerahanya ya gan. Terimakasih sebelumnya :)
13 Jawaban:
keterangan errornya apa gan, ntar sama kek ane kmren Can't use function return value in write
klo sama mgkn sdh ada yg jawab https://www.sekolahkoding.com/forum/pada-saat-di-lakukan-penambahan-trim-terjasi-error
ga ada keterangan errornya gan , bisa diblg ini bug
Halo .. Saya menemukan error yang sama. Jadinya keluarannya echo gagal itu. Berarti kan hasilnya false ya. Kok bisa gitu ya?
coba pake koding ini bisa gak tinggal disesuaikan aja
function cek_data($username,$password) {
global $link;
$username = mysqli_real_escape_string($link,$username);
$password = mysqli_real_escape_string($link,$password);
$query = "SELECT * FROM admin WHERE email = '$username' or username ='$username'";
$result = mysqli_query($link,$query);
$hash = mysqli_fetch_assoc($result)['password'];
if(password_verify($password,$hash) ) {
echo"berhasil gan";
}else {
echo"gagal gan";
}
}
itu ada proses daftar gak di web nya? proses daftar nya harus pake password_hash() untuk password nya trus login nya pake password_verify()
Tapi saya masih pake my_sql sih soalnya php 5 xampp sayanya. Ngaruh ga itu?
Di validasi coba validasikan funsi cek data, seperti syntax dibawah ini.
//VALIDASI
if(isset($_POST['submit'])){
$username = $_POST['username'];
$password = $_POST['password'];
//die($username." ".$password);
if (!empty(trim($username)) && !empty(trim($password))) {
if(cek_data($username,$password)){
echo "Berhasil Login";
}else{ echo "Gagal Login"; }
}else {
echo "Silahkan masukan datanya terlebih dahulu :)";
}
}
terus dibagian function cekd_data() pada bagian validasi password_verify nya agan coba return boolean, contoh pada syntax dibawah ini.
if(password_verify($password,$hash) ) return true;
else return false;
Maaf, saya juga menemukan error yang sama.saya sudah pakai caranya mas @maulanakaris dan hasil booleanya False.
@khumaidah kemungkinan kesalahannya terjadi pada sql query, makanya boolean nya false, silahkan dicek dengan detail
Coba cek di databasenya dulu gan. Mungkin ada yg typo trs cocokin sama query. Trs coba dulu gapake password hash buat loginnya.
@maulanakaris sudah saya cek dan saya rasa sudah benar semua. @fahmifan sudah saya coba ga pake password hash , hasilnya bisa login tanpa password hash.
syukur udah ketemu masalahnya, ternyata nilai tipe data password nya belum diganti. Terimakasih banyak temen temen atas responya