Tahun baru, skill baru! 🚀. Masukkan kupon "skill2025" untuk diskon 30% di kelas apa saja

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 :)

avatar dacevezaq
@dacevezaq

57 Kontribusi 5 Poin

Diperbarui 7 tahun yang lalu

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

avatar ahsan87
@ahsan87

1 Kontribusi 0 Poin

Dipost 8 tahun yang lalu

ga ada keterangan errornya gan , bisa diblg ini bug

avatar dacevezaq
@dacevezaq

57 Kontribusi 5 Poin

Dipost 8 tahun yang lalu

Halo .. Saya menemukan error yang sama. Jadinya keluarannya echo gagal itu. Berarti kan hasilnya false ya. Kok bisa gitu ya?

avatar Santonababan96
@Santonababan96

13 Kontribusi 0 Poin

Dipost 7 tahun yang lalu

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";
	}

}
avatar stefanuspn
@stefanuspn

250 Kontribusi 69 Poin

Dipost 7 tahun yang lalu

itu ada proses daftar gak di web nya? proses daftar nya harus pake password_hash() untuk password nya trus login nya pake password_verify()

avatar stefanuspn
@stefanuspn

250 Kontribusi 69 Poin

Dipost 7 tahun yang lalu

Tapi saya masih pake my_sql sih soalnya php 5 xampp sayanya. Ngaruh ga itu?

avatar Santonababan96
@Santonababan96

13 Kontribusi 0 Poin

Dipost 7 tahun yang lalu

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;
avatar arisid96
@arisid96

179 Kontribusi 71 Poin

Dipost 7 tahun yang lalu

Maaf, saya juga menemukan error yang sama.saya sudah pakai caranya mas @maulanakaris dan hasil booleanya False.

avatar khumaidah
@khumaidah

3 Kontribusi 0 Poin

Dipost 7 tahun yang lalu

errornya apa coba share

avatar waliyurachman29
@waliyurachman29

58 Kontribusi 8 Poin

Dipost 7 tahun yang lalu

@khumaidah kemungkinan kesalahannya terjadi pada sql query, makanya boolean nya false, silahkan dicek dengan detail

avatar arisid96
@arisid96

179 Kontribusi 71 Poin

Dipost 7 tahun yang lalu

Coba cek di databasenya dulu gan. Mungkin ada yg typo trs cocokin sama query. Trs coba dulu gapake password hash buat loginnya.

avatar fahmifan
@fahmifan

6 Kontribusi 0 Poin

Dipost 7 tahun yang lalu

@maulanakaris sudah saya cek dan saya rasa sudah benar semua. @fahmifan sudah saya coba ga pake password hash , hasilnya bisa login tanpa password hash.

avatar khumaidah
@khumaidah

3 Kontribusi 0 Poin

Dipost 7 tahun yang lalu

syukur udah ketemu masalahnya, ternyata nilai tipe data password nya belum diganti. Terimakasih banyak temen temen atas responya

avatar khumaidah
@khumaidah

3 Kontribusi 0 Poin

Dipost 7 tahun yang lalu

Login untuk ikut Jawaban