Mengamankan CodeIgniter

 Contoh Controller :

<?php

class Jobvacancy extends CI_Controller
{
public function addjob()
{
$this->load->library('form_validation');
if ($this->input->method() === "post") {
$data["job"] = $this->input->post();

$rules = [
[
'field' => 'name',
'label' => 'Name',
'rules' => ''
],
[
'field' => 'job_image_url',
'label' => 'Image URL',
'rules' => 'valid_url'
],
[
'field' => 'job_url',
'label' => 'Job URL',
'rules' => 'valid_url'
],
];

$this->form_validation->set_rules($rules);
if ($this->form_validation->run() == FALSE) {
return $this->load->view('add_job_form');
}

// di sini biasanya dilakukan penyimpanan ke database

return $this->load->view("list_job", $data);
}

$this->load->view('add_job_form');
}
}

Contoh View

<form id="form-add" action="" method="post">
<label for="name">Vacancy Job name</label>
<input type="text" name="name" value="<?= htmlentities(set_value('name'), ENT_QUOTES) ?>">
<div style="color: tomato;">
<?= form_error('name') ?>
</div>
<br>
<label for="job_image_url">Image URL</label>
<input onchange="previewImage(this)" type="url"
pattern="[(http(s)?):\/\/(www\.)?a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)"
name="job_image_url" value="<?= htmlentities(set_value('job_image_url'), ENT_QUOTES) ?>">
<div style="color: tomato;">
<?= form_error('job_image_url') ?>
</div>
<div id="image-preview"></div>
<br>
<label for="job_url">Job URL</label>
<input type="url"
pattern="[(http(s)?):\/\/(www\.)?a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)"
name="job_url" value="<?= htmlentities(set_value('job_url'), ENT_QUOTES) ?>">
<div style="color: tomato;">
<?= form_error('job_url') ?>
</div>
<br>
<input type="submit" value="Simpan">
</form>

<script type="text/javascript">
function previewImage(event) {
const previewContainer = document.querySelector('#image-preview');
const form = document.querySelector('#form-add');
if (form.checkValidity()) {
const imageURL = event.value;
previewContainer.innerHTML = `
<img src="${imageURL}" height="200" width="200" />
`;
}
}
</script>



Tidak ada komentar:

Posting Komentar