register tidak masuk database

registernya sih berhasil tapi gak masuk ke dalam table ya?

register.php

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

  if(session::exists('username')){
    header('location: profile.php');
  }

  $errors = array();

  if ( input::get('submit')) {
    //call validation
    $validation = new validation();
    // ngecek
    $validation = $validation->check(array(
      'username' => array(
        'required' => true,
        'min' => 3,
        'max' => 50,
      ),
      'password' => array(
        'required' => true,
        'min' => 3,
      )
    ));

    //finish
    if( $validation->passed() ){
      $user->register_user(array(
        'username'  => input::get('username'),
        'password'  => password_hash(input::get('password'), PASSWORD_DEFAULT)
      ));

      session::set('username', input::get('username'));
      header('Location: profile.php');

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

  }

?>

<div class="panel panel-default">
  <div class="panel-heading">
  <div class="panel-title"><h1>Register</h1></div>
</div>
<form action="register.php" method="post">
  <div class="panel-body">
  <tr>
      <td><input type='text' name='username' class="form-control" placeholder="Username"></td>
  </tr>
      <div class="clearfix"></div><br />
  <tr>
      <td><input type='password' name='password' class='form-control' placeholder="Password"></td>
  </tr>
    <div class="clearfix"></div><br />
  <tr>
  <td><input type="submit" class="btn btn-large btn-success" name="submit" value="Daftar"></td>
  </tr>
  <?php if(!empty($errors)){?>
    <div id="errors">
    <?php foreach ($errors as $error){ ?>
      <li> <?php echo $error;?> </li>
    <?php } ?>
</div>
  <?php } ?>

</div>
</form>
</div>

user.php

<?php

class user extends db{
   private $table = 'person';
   private $pengguna = 'users';
  public function __construct()
	{
		    parent::__construct();
	}

  public function insert($pemakai,$fields = array())
  {

    //ambil kolom
    $column = implode(",", array_keys($fields));

    //ambil nilai
    $valueArrays = array();
    $i = 0;
    foreach ($fields as $key=>$values) {
      if( is_int($values) ){
      $valueArrays[$i] = $this->escape($values) ;
    }else{
      $valueArrays[$i] = "'" . $this->escape($values) . "'";
      $i++;}
    }

    $values = implode(",", $valueArrays);

    $query = "INSERT INTO $pemakai ($column) VALUES ($values)";

    return $this->run_prepare($query, 'have problem when you input data');
  }

  public function get_info( $pemakai,$column, $value)
  {
    if( !is_int($value) )
        $value = "'" . $value . "'";
        $query = "SELECT * FROM $pemakai WHERE $column = $value";
        $result = $this->_db->prepare($query);
        $result->execute();

        while($row = $result->fetch(PDO::FETCH_ASSOC)) {
        return $row;
      }
  }

  public function run_prepare($query, $msg){
    if($this->_db->prepare($query)) return true;
    else die($msg);
  }

  public function escape($name){
    return $this->_db->quote($name);
  }

  public function register_user($fields = array())
  {
    if( $this->insert($this->pengguna,$fields) ) return true;
    else return false;
  }
  public function login_user($username , $password)
  {

    $data = $this->get_info($this->pengguna, 'username', $username);

    if(password_verify(input::get('password'), $data['password']) )

      return true;
    else return false;
  }
  public function cek_nama($username)
  {
      $data = $this->get_info($this->pengguna, 'username', $username);
      if(empty($data)) return false;
      else return true;
  }

  public function filterinjection($value){
  // Karakter yang sering digunakan untuk sqlInjection
  $char = array ('-','/','\\',',','.','#',':',';','\'','"',"'",'[',']','{','}',')','(','|','`','~','!','@','%','$','^','&','*','=','?','+');

  // Hilangkan karakter yang telah disebutkan di array $char
  $cleanval = str_replace($char, '', trim($value));

  return $cleanval;
  }

  public function read(){
    $query = "SELECT * FROM $this->table";
    $result = $this->_db->prepare($query);
    $result->execute();
    while($row = $result->fetch(PDO::FETCH_ASSOC))
    $hasil[]=$row;
    return $hasil;
  }

  public function post( $value)
  {
        $value = "'" . $value . "'";
        $query = "SELECT * FROM $this->table WHERE id=$value";
        $result = $this->_db->prepare($query);
        $result->execute();

        while($row = $result->fetch(PDO::FETCH_ASSOC))
        return $row;
  }

  public function cari( $value, $column, $column2)
  {

        $value = "'%" . $value . "%'";
        $query = "SELECT * FROM $this->table WHERE $column LIKE $value OR $column2 LIKE $value";
        $result = $this->_db->prepare($query);
        $result->execute();

        while($row = $result->fetch(PDO::FETCH_ASSOC))
        $hasil[]=$row;
        return $hasil;
  }

  public function input($nama,$alamat,$gambar){
    $query = "INSERT INTO $this->table VALUES('','$nama','$alamat','$gambar')";
    $result = $this->_db->prepare($query);
    $result->execute();
  }

  public function hapus($value){
    $query = "DELETE FROM $this->table WHERE id='$value'";
    $result = $this->_db->prepare($query);
    $result->execute();
  }

  public function update($nama,$alamat,$gambar,$id){
    $query = "UPDATE $this->table SET nama='$nama', alamat='$alamat', gambar='$gambar' WHERE id='$id'";
    $result = $this->_db->prepare($query);
    $result->execute();
  }

  public function update2($id,$nama,$alamat){
    $query = "UPDATE $this->table SET nama='$nama', alamat='$alamat' WHERE id='$id'";
    $result = $this->_db->prepare($query);
    $result->execute();
  } function Paginate($values,$per_page){
  $total_values = count($values);

  if(abs((int) isset($_GET['page']))){
  $current_page = abs((int) $_GET['page']);
  }else{
  $current_page = 1;
  }
  $counts = ceil($total_values / $per_page);
  $param1 = ($current_page - 1) * $per_page;
  $this->data = array_slice($values,$param1,$per_page);

  for($x=1; $x<= $counts; $x++){
  $numbers[] = $x;
  }
  return $numbers;
  }
   function fetchResult(){
  $resultsValues = $this->data;
  return $resultsValues;
  }

/*Installer*/

//membuat koneksi ke mysql

//membuat database
public function createdatabase($konek2,$databases){
  mysqli_prepare($konek2,"create database ".$databases."") or die('NAMA HOSTING,USERNAME DAN PASSWORD DI HOSTING HARUS BENAR');
  echo "└ konek ke server... ✓<br/>";
echo "└ berhasil membuat database! ✓<br/>";}

//membuka database yang telah dibuat
public function opendatabase($konek2,$databases){
  mysqli_select_db($konek2,$databases);
echo "└ database telah ditemukan... ✓<br/>";}

//membuat table user dengan user standar
public function createtable($konek2){
mysqli_prepare($konek2,"create table users(username varchar(30) primary key not null, password varchar(32) not null)");
echo "└ berhasil membuat table! ✓<br/>";}

}

 ?>

db.php

<?php

/*
8""""                                 8""8""8
8     eeeee eeeee e   e eeee e        8  8  8 e   e eeeee  eeeee e   e e    e
8eeee 8   8 8   8 8   8 8    8        8e 8  8 8   8 8   8  8   8 8   8 8    8
88    8eee8 8e  8 8eee8 8eee 8e       88 8  8 8e  8 8eee8e 8eee8 8eee8 8eeee8
88    88  8 88  8 88  8 88   88       88 8  8 88  8 88   8 88    88  8   88
88    88  8 88ee8 88  8 88ee 88eee    88 8  8 88ee8 88   8 88    88  8   88

*/

class db{
	protected $_db;
	private $HOST = 'localhost',
	  			$DBNAME = 'cekula',
					$USER = 'fadhel',
  				$PASS = '';

  public function __construct(){
		try
		{
    $this->_db = new PDO( "mysql:host=$this->HOST;dbname=$this->DBNAME",$this->USER,$this->PASS );
		$this->_db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
	}
	catch(PDOException $e)
	{
		echo $e->getMessage();
		echo "<br/>";
		echo "GAGAL KONEK";
	}
  }

}

 ?>

input.php

<?php

class input {

  public static function get($name){
    if( isset($_POST[$name]) ){
      return $_POST[$name];
    }
    else if( isset($_GET[$name]) ) {
      return $_GET[$name];
    }

    return false;
  }

}

 ?>

session.php

<?php

class session{
  public static function exists($nama){
    return(isset($_SESSION[$nama])) ? true : false ;
  }

  public static function set($nama, $nilai){
    return $_SESSION[$nama] = $nilai;

  }
  public static function get($nama){
    return $_SESSION[$nama];

  }
}

 ?>

validation.php

<?php

class validation{

  private $_passed = false,
          $_errors = array();

  public function check($items = array()){
    foreach ($items as $item => $rules) {
      foreach ($rules as $rule => $rule_value) {
        switch ($rule) {
          case 'required':
            if( trim(input::get($item)) == false && $rule_value == true ) {
              $this->addError(" $item wajib diisi ");
            }
            break;
            case 'min':
              if( strlen(input::get($item)) < $rule_value ) {
                $this->addError(" $item minimal $rule_value 3 character ");
              }
              break;
              case 'max':
                if( strlen(input::get($item)) > $rule_value ) {
                  $this->addError(" $item maximal $rule_value 3 character ");
                }
                break;

          default:
            break;
        }
      }
    }//end first foreach

    if(empty($this->_errors)){
      $this->_passed = true;
    }
    return $this;
  }

private function addError($error){
  $this->_errors[] = $error;
}

public function errors(){
  return $this->_errors;
}

public function passed(){
  return $this->_passed;
}

}

 ?>

core/init.php

<?php
session_start();

//load kelas
spl_autoload_register(function($class){
  include 'classes/' .$class. '.php';
});

$user = new user();
 ?>

avatar fadhelmurphy
@fadhelmurphy

19 Kontribusi 1 Poin

Diperbarui 7 tahun yang lalu

1 Jawaban:

pada user.php, menjadi gini

public function insert($pemakai, $fields = array())
    {

    //ambil kolom
    $column = implode(',', array_keys($fields));

    //ambil nilai
    $valueArrays = array();
        $i = 0;
        foreach ($fields as $key => $values) {
            $valueArrays[$i] = $this->escape($values);
            ++$i;
        }

        $values = implode(',', $valueArrays);

        $query = "INSERT INTO $pemakai ($column) VALUES ($values)";

        return $this->run_prepare($query, 'have problem when you input data');
    }

untuk script

if( is_int($values) ){
      $valueArrays[$i] = $this->escape($values) ;
    }else{
      $valueArrays[$i] = "'" . $this->escape($values) . "'";
      $i++;}
    }

dirubah karna menurut saya akan mebuat duplicate ' , jadi VALUES(blalbalba , ' 'password_hashds2346sd' ')

dan pada function prepare

public function run_prepare($query, $msg)
    {
        $stmt = $this->_db->prepare($query);
        if ($stmt->execute()) {
            return true;
        } else {
            die($msg);
        }
    }

query belum di execute..

saya udah coba, dan berhasil masukdatabase, tapi saya gak tau password yang diinput sesaui atau tidak karna menggunakan hash password :) , semoga membantu permasalahnnya

avatar gunalirezqimauludi
@gunalirezqimauludi

350 Kontribusi 243 Poin

Dipost 7 tahun yang lalu

Login untuk ikut Jawaban