sistem login gagal trus, pdahal sudah sesuai di database.

ini function nya :


function cek_data($nama, $pass){
      global $conn;

      //mencegah sql injection
      $nama  = mysqli_real_escape_string($conn, $nama);
      $pass  = mysqli_real_escape_string($conn, $pass);

      $query = "SELECT password FROM users WHERE username = '$nama'";
      $hasil = mysqli_query($conn, $query);
      $hash  = mysqli_fetch_assoc($hasil)['password'];

    //  die( print_r($hash));

      if( password_verify($pass, $hash) ){
        die ('berhasil !');
      }else{
        die ('gagal !!');
      }
    }

login.php nya :

<?php
  require_once "core/init.php";

  //validati register
  if ( isset($_POST['submit']) ) {
    $nama  = $_POST['username'];
    $pass  = $_POST['password'];

    if (!empty(trim($nama)) && !empty(trim($pass)) ) {

       cek_data($nama, $pass);

    }else {
      echo 'tidak boleh kosong';
    }
  }

  require_once "view/header.php";
 ?>

avatar matrahim
@matrahim

5 Kontribusi 0 Poin

Diperbarui 7 tahun yang lalu

2 Jawaban:

coba dehh gan agan ilangin mysqli_real_escape_string() dulu, kalo emg langsung bisa, berarti masalahnya disitu, terkadang ane makek metode sama persis dengan agan, tapi malah gak bisa, setelah ane ilangin real escapenya tba tba bisa...akhirnnya ane akalin pakek ini

$username 	= stripslashes($_POST['username']);

ada banyak banget cara untuk mencegah sql injection dari htmlentities() stripslashe() dan lain lain, coba gunakan metode lain untuk ngelindungin web agan dari sql injection

avatar nagatap25
@nagatap25

113 Kontribusi 42 Poin

Dipost 7 tahun yang lalu

ane dapat.y di password_hash() dan password_verify(), bgitu ane ganti jadi md5() udah bisa normal lg gan .. thanks udah bantu ..

avatar matrahim
@matrahim

5 Kontribusi 0 Poin

Dipost 7 tahun yang lalu

Login untuk ikut Jawaban