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

login gagal,password verify(SOLVED)

halo guys, jadi ceritanya ane lg ngikutin video tutorial sekolahkoding sistem login oop PHP, nah pas udah masuk bagian sistem login gagal mulu, selalu dilempar ke "Login failed" di if else nya.... dari yg ane liat, ini udh bisa lewat validasi, kayanya gagal pas mau set Session atau verify password

ini form login nya

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

  $errors = array();

if( Input::get('submit')){

  //1. call object
$validation = new Validation();

  //2. check method
  $validation = $validation->check(array(
    'username' => array( 'required' => true),
    'password' => array( 'required' => true)
  ));

  //3. passed Validation
  if($validation->passed() ){

  if($admin->login_admin( Input::get('username'),Input::get('password') ) )
  {
    Session::set('username', Input::get('username'));
    header('Location: adminindex.php');
   }else{
     $errors[] = "login failed";

   }

  }else {
    $errors = $validation->errors();
  }
}

require_once "templates/header.php";
 ?>

<form class="" action="login2.php" method="post">

  <label>ID Admin</label>
  <input type="text" name="username">

  <label>Password</label>
  <input type="password" name="password">

    <?php if(!empty($errors)){ ?>
      <div id="errors">
        <?php foreach ($errors as $error) { ?>
          <li><?php echo $error; ?></li>
    <?php    } ?>
      </div>
    <?php } ?>

  <input type="submit" name="submit" value="Log In">

</form>

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

ini function2 nya

 public function login_admin($username, $password){

    $data = $this->_db->get_info('admin', 'username', $username);
    // print_r($data);
    // die();

    if( password_verify($password, $data['password']) )
      return true;
      else return false;
}
  public function get_info($table, $column, $value){

    if(!is_int($value))
      $value = "'" .$value. "'";

    $query = "SELECT * FROM $table WHERE $column = $value";
    $result = $this->conn->query($query);

    while($row = $result->fetch_assoc()){
      return $row;
    }
  }

kalo di print_r terus die, udh berhasil ngambil datanya naah,kan code nya mirip2 halaman register tuh, ko tapi yg register berhasil ya, bisa ke set Session nya terus nge redirect ke halaman adminindex.


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

  $errors = array();

if( Input::get('submit')){

  //1. memanggil objek validasi
$validation = new Validation();
  //2. metode check
  $validation = $validation->check(array(
    'username' => array(
                          'required' => true,
                          'minimal' => 5,
                          'maximal' => 20,
                        ),
    'password' => array(
                      'required' => true,
                      'minimal' => 5,
                    ),
    'division' => array(
                      'required' => true,
                    )
  ));
  //3. passed Validation
  if($validation->passed() ){
  $admin->register_admin(array(
    'username' => Input::get('username'),
    'password' => password_hash(Input::get('password'), PASSWORD_DEFAULT),
    'division' => Input::get('div')
  ));

    Session::set('username', Input::get('username'));
    header('Location: adminindex.php');

  }else {
    $errors = $validation->errors();
  }
}

require_once "templates/header.php";
 ?>

<form class="" action="registeradmin.php" method="post">

  <label>ID Admin</label>
  <input type="text" name="username">

  <label>Password</label>
  <input type="password" name="password">

  <label>division</label>
  <input type="text" name="div">

    <?php if(!empty($errors)){ ?>
      <div id="errors">
        <?php foreach ($errors as $error) { ?>
          <li><?php echo $error; ?></li>
    <?php    } ?>
      </div>
    <?php } ?>

  <input type="submit" name="submit" value="add Admin">

</form>

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

tolong pencerahan nya agan2 sekalaian

avatar Holmes25
@Holmes25

8 Kontribusi 2 Poin

Dipost 7 tahun yang lalu

1 Jawaban:

problem solved

di database ane limit password jadi varchar 40, sedangkan hasil password hash lebih dari 40 karakter

avatar Holmes25
@Holmes25

8 Kontribusi 2 Poin

Dipost 6 tahun yang lalu

Login untuk ikut Jawaban