membuat login dengan php, tapi masaih gagal

belajar membuat register dan login dengan php, tapi kok login masih gagal, kira kira salah dimana ya?

register udah masuk database, tapi ketika login gak bisa masuk

cek disini linknya
https://fadliyudaprihadi.com/formz/sinaulogin/login.php
avatar Fadli17

@Fadli17

5 Kontribusi 0 Poin

  • boleh tampilkan source code loginnya ? - @insanz01
  • terima kasih responnya, saya baru aja copas scriptnya di kolom jawaban - @Fadli17


Jawaban

ini saya copas isi script user.php

<?php

//mendaftarkan user
function register_user($nama, $pass){
  global $link;

  //mencegah sql injection
  $nama = escape($nama);
  $pass = escape($pass);

  //$pass  = password_hash($pass, PASSWORD_DEFAULT);
  $query = "INSERT INTO users (username, password) VALUES ('$nama', '$pass')";

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

function cek_nama($nama){
    global $link;
    $nama = escape($nama);

    $query = "SELECT * FROM users WHERE username = '$nama'";

    if( $result = mysqli_query($link, $query) ) return mysqli_num_rows($result);
}

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

    //mencegah sql injection
    $nama = escape($nama);
    $pass = escape($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) ) return true;
   
  else return false;


}



 
 

//mencegah injection
function escape($data){
  global $link;
  return mysqli_real_escape_string($link, $data);
}

function redirect_login($nama){
    $_SESSION['user'] = $nama;
    header('Location: index.php');
}

function flash_delete($name){
    echo $_SESSION['msg'];
    unset($_SESSION['msg']);
}

//menguji status user apakah admin atau bukan
function cek_status($nama){
  global $link;
  $nama = escape($nama);

  $query = "SELECT role FROM users WHERE username='$nama'";

  $result = mysqli_query($link, $query);
  $status = mysqli_fetch_assoc($result)['role'];

  if( $status == 1) return true;
  else return false;
}

?>


avatar Fadli17

@Fadli17

5 Kontribusi 0 Poin


ini login.php

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

$error = '';

//redirect kalau user sudah login
if( isset($_SESSION['user']) ) header('Location: index.php');

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

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

    if(cek_nama($nama) != 0 ){
      if( cek_data($nama, $pass)) redirect_login($nama);
      else $error = 'data ada yang salah';
    } else $error = 'namanya belum terdaftar di database';
  }else $error = 'tidak boleh kosong';
}


require_once "view/header.php";


//meguji pesan session
if(isset($_SESSION['msg'])){
  flash_delete($_SESSION['msg']);
}  

?>


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

  <br>

  <? if($error != ''){ ?>
    <div id="error">
      <?= $error; ?>
    </div>
  <? } ?>

</form>


<? require_once "view/footer.php"; ?>

avatar Fadli17

@Fadli17

5 Kontribusi 0 Poin


image.pngimage.png
screenshot database  tabel users

avatar Fadli17

@Fadli17

5 Kontribusi 0 Poin

  • wah, ternyata sulit juga ya cek nya saya mencoba membuat script yang sama pada laptop saya, di punya saya bisa kalau boleh, push ke github biar saya bisa cek lebih lanjut - @insanz01
  • oiya, apakah kolom password nya itu type nya varchar / text dengan length 60 atau lebih ? - @insanz01
  • passwordnya varchar dengan length 50 - @Fadli17

Tampikan semua |


teman teman tolong jika tidak keberatan dicek file saya ini, salahnya di mana ya?

https://drive.google.com/file/d/13DtN4hdKxYgIj4UOq5ioqcqdyjPIqcMk/view?usp=sharing
avatar Fadli17

@Fadli17

5 Kontribusi 0 Poin


Login untuk gabung berdiskusi
premium logo tube

Hey, sedang ada diskon premium untuk akses semua kelas. Lihat di sini