Diskon 50% terbatas! Masukkan kupon "programmer2025" di kelas apa saja

Sistem Login

Saya gagal Login saat mencontoh tutorial <a href='https://www.sekolahkoding.com/kelas/membuat-sistem-login-dan-register'>https://www.sekolahkoding.com/kelas/membuat-sistem-login-dan-register</a> dari SK Ini Source nya

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

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

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

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

	}

Setiap saya login dengan username yang berbeda hasil tetap sama kayak gini gan

mohon bantuannya.....

avatar Tobi Aditia Alfani
@Tobi Aditia Alfani

22 Kontribusi 3 Poin

Diperbarui 10 tahun yang lalu

7 Jawaban:

coba ganti gini gan


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

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

			$query = "SELECT password FROM users WHERE username='$nama'";
			$result = mysqli_query($link, $query);
			$data   = mysqli_fetch_assoc($result);

      $hash = $data['password'];

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

	}

avatar ahanafi
@ahanafi

815 Kontribusi 554 Poin

Dipost 10 tahun yang lalu

tetep gagal gan apa mungkin ini penyebabnya #array , dan itu num_rows nya selalu => 1 ... gak berubah walau usernamenya beda

mohon maaf kalau kurang jelas hhhh...

avatar Tobi Aditia Alfani
@Tobi Aditia Alfani

22 Kontribusi 3 Poin

Dipost 10 tahun yang lalu

coba liat script proses loginnya gan, + liat data password di databasenya

avatar ahanafi
@ahanafi

815 Kontribusi 554 Poin

Dipost 10 tahun yang lalu

[link]http://pastebin.com/WhPRZReq[/link] [link]http://pastebin.com/ivi6TBhT[/link] http://pastebin.com/FpmWP2jb

avatar Tobi Aditia Alfani
@Tobi Aditia Alfani

22 Kontribusi 3 Poin

Dipost 10 tahun yang lalu

Jawaban Terpilih

seharusnya cek username dulu gan, pake num_rows, kalo usernamenya ada di database baru cek validasi password pake password_hash(); terus itu field passwordnya berapa charachternya ? 255 bukan ?

avatar ahanafi
@ahanafi

815 Kontribusi 554 Poin

Dipost 10 tahun yang lalu

sudah berhasil gan... ternyata katanya password lengthnya harus lebih dari 32 character, tadi punya saya cuma 10 character hhh...

avatar Tobi Aditia Alfani
@Tobi Aditia Alfani

22 Kontribusi 3 Poin

Dipost 10 tahun yang lalu

coba function registernya ganti jadi ini gan :


    function register_user($nama,$pass){

        global $link;

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

        $pass = password_hash($pass, PASSWORD_DEFAULT, ['cost'=>12]);
        $query = "INSERT INTO users (username, password) VALUES ('$nama','$pass')";

        if (mysqli_query($link, $query)){
            return true;
        }else{
            return false;
        }
    }


avatar ahanafi
@ahanafi

815 Kontribusi 554 Poin

Dipost 10 tahun yang lalu

Login untuk ikut Jawaban