waktu tersisa untuk klaim Potongan harga Rp 300.000 dalam program Membership. Klaim Promo!

error URI

Ditanyakan 3 hari yang lalu oleh Mujahidin Salam Edit  Hapus  Tandai Selesai  Tandai 
Mohon bantuan terdapat error The URI you submitted has disallowed characters.

sudah coba cocokan dgn source kode tp belum ketemu jg. tks

berikut controller product 

<?php


defined('BASEPATH') OR exit('No direct script access allowed');

class Product extends MY_Controller 
{

    public function __construct()
    {
        parent::__construct();
        {
        
        }
    }
       
    public function index($page = null)
    {
        $data['title']      = 'Admin : Produk';     //product mengacu ke model product
        $data['content']    = $this->product->select( //karena nama kolom di table category dan product sama maka makai method select
           [
               'product.id', 'product.title AS product_title', 'product.image',
               'product.price', 'product.is_available',
               'category.title AS category_title'
           ] 
        )
            ->join('category')  //method join di my model
            ->paginate($page)
            ->get();
            $data['total_rows']= $this->product->count();  
            $data['pagination']= $this->product->makePagination(
             base_url('product'),2, $data['total_rows']
            );
            $data['page']       = 'pages/product/index';

            $this->view($data);
    }
    public function create()
    {
        if (!$_POST) {
            $input = (object) $this->product->getDefaultValues();
        } else {
            $input = (object) $this->input->post(null,true);
        }

        if (!$this->product->validate()){
            $data['title']      = 'Tambah Produk';
            $data['input']      = $input;
            $data['form_action']= base_url('product/create');
            $data['page']       = 'pages/product/form';
        
            $this->view($data);
            return;
        }
        if (!empty($_FILES) && $_FILES['image']['name'] !==''){
            $imageName = url_title($input->title, '-', true) .'-'. date('YmdHis');
            $upload = $this->product->uploadImage('image', $imageName);
            if ($upload) {
                $input->image = $upload['file_name'];
            } else {
                redirect(base_url('product/create'));
            }
        }
        
        if ($this->product->create($input)){
            $this->session->set_flashdata('success', 'Data berhasil disimpan!');
        } else {
            $this->session->set_flashdata('error', 'Oops, terjadi kesalahan!'); 
        }
        redirect(base_url('product'));
    }
    
    public function edit($id)
    {
        $data['content'] = $this->product->where('id', $id)->first();

        if (!$data['content']) {
            $this->session->set_flashdata('warning', 'Maaf, data tidak dapat ditemukan');
            redirect(base_url('product'));
        }
        if (!$_POST){
            $data['input'] = $data['content'];
        } else {
            $data['input'] = (object) $this->input->post(null, true);
        }
        if (!empty($_FILES) && $_FILES ['image']['name'] !==''){
            $imageName = url_title($data['input']->title, '-', true) .'-'. date('YmdHis');
            $upload = $this->product->uploadImage('image', $imageName);
            if ($upload) {
                if ($data['content']->image !== '') {
                    $this->product->deleteImage($data['content']->image);
                }
                $data['input']->image = $upload['file_name'];
            } else {
                redirect(base_url('product/edit/$id'));
            }
        }
        if (!$this->product->validate()){
            $data['title']      = 'Ubah Produk';
            $data['form_action']= base_url('product/edit/$id');
            $data['page']       = 'pages/product/form';
        
            $this->view($data);
            return;
        }
        if ($this->product->where('id',$id)->update($data['input'])){
            $this->session->set_flashdata('success', 'Data berhasil disimpan!');
        } else {
            $this->session->set_flashdata('error', 'Oops, terjadi kesalahan!'); 
        }
        redirect(base_url('product'));
    
    }
    public function unique_slug()
    {
        $slug     = $this->input->post('slug');
        $id       = $this->input->post('id');
        $product = $this->product->where('slug', $slug)->first();
   
        if ($product) {
            if ($id == $product->id) {
                return true;
            }
            $this->load->library('form_validation');
            $this->form_validation->set_message('unique_slug', '%s sudah digunakan!');
            return false;
        }
        return true;
    } 

}

/*Product.php */


berikut model product

<?php


defined('BASEPATH') OR exit('No direct script access allowed');

class Product_model extends MY_Model 
{
    //protected $perPage = 5; --karena sdh dideklarasi di MY_Model
    public function getDefaultValues()
    {
        return [
            'id_category'   => '',
            'slug'          => '',
            'title'         => '',
            'description'   => '',
            'price'         => '',
            'is_available'  => 1,
            'image'         => ''
        ];
    }
    public function getValidationRules()
    {            //buat sesuai nama kolom ditabel DB
        $validationRules = [     
            [
                'field' => 'id_category',
                'label' => 'Kategori',
                'rules' => 'required'
            ],
            [
                'field' => 'slug',
                'label' => 'Slug',
                'rules' => 'trim|required|callback_unique_slug'
            ],
            [
                'field' => 'title',
                'label' => 'Nama Produk',
                'rules' => 'trim|required'
            ],
            [
                'field' => 'description',
                'label' => 'Deskripsi',
                'rules' => 'trim|required'
            ],
            [
                'field' => 'price',
                'label' => 'Harga',
                'rules' => 'trim|required|numeric'
            ],
            [
                'field' => 'is_available',
                'label' => 'Ketersediaan',
                'rules' => 'required'
            ],
        ];
        return $validationRules;
    }
    public function uploadImage($fieldName, $fileName)
    {
        $config = [
            'upload_path'       => './images/product',
            'file_name'         => $fileName,
            'allowed_types'     => 'jpg|gif|png|jpeg|JPG|PNG',
            'max_size'          => 1024,
            'max_width'         => 0,
            'max_height'        => 0,
            'overwrite'         => true,
            'file_ext_tolower'  => true,
        ];
        $this->load->library('upload', $config);

        if ($this->upload->do_upload($fieldName)){
            return $this->upload->data();
        } else {
            $this->session->set_flashdata('image_error', $this->upload->display_errors('',''));
            return false;
        }
    }
    public function deleteImage($fileName)
    {
        if (file_exists("./images/product/$fileName")){
            unlink("./images/product/$fileName");
        }
    }

}

/* End of file Product_model.php */

BUAT KOMENTAR

1 JAWABAN / 0 KOMENTAR

User avatar
kayaknya yang salah bukan di codingannya tapi di pas bikin urlnya, coba jangan masukin karakter yang tidak diperbolehkan, soalnya ada aturannya misal gak boleh pake -_*"; dsb
BUAT KOMENTAR