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 7 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 552 Poin

Dipost 7 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 7 tahun yang lalu

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

avatar ahanafi
@ahanafi

815 Kontribusi 552 Poin

Dipost 7 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 7 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 552 Poin

Dipost 7 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 7 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 552 Poin

Dipost 7 tahun yang lalu

Login untuk ikut Jawaban