Postingan lainnya
Buku Ini Koding!
Baru!
Buku ini akan jadi teman perjalanan kamu belajar sampai dapat kerjaan di dunia programming!
Bagaimana penulisan yang benar untuk masalah saya?
Saya ingin membuat login dengan memvalidasi username yang terdapat pada digit ke 3 username, misal username A (191290) & username B (192290) & username C (193290). Perhatikan angka ke 3 pada contoh username ada angka 1&2&3. Bagaimana saya memastikan bahwa saat masuk ke situs web saya, hanya nama pengguna dengan nomor 1 atau 191290 yang dapat masuk? padahal nama pengguna B&C saya ada di database?? tolong bantu saya menyelesaikan ini
//controller
function index(){
if (isset($_POST['submit'])){
if ($this->input->post() && (strtolower($this->input->post('security_code')) == strtolower($this->session->userdata('mycaptcha')))) {
$username = $this->input->post('a',TRUE);
$password = hash("sha512", md5($this->input->post('b',TRUE)));
$cek = $this->model_app->cek_login($username,$password,'users');
$row = $cek->row_array();
$total = $cek->num_rows();
if ($total > 0){
$this->session->set_userdata('upload_image_file_manager',true);
$this->session->set_userdata(array('username'=>$row['username'],
'level'=>$row['level'],
'id_session'=>$row['id_session']));
redirect($this->uri->segment(1).'/home');
}else{
echo $this->session->set_flashdata('message', '<div class="alert alert-danger"><center>Username dan Password Salah!!</center></div>');
redirect($this->uri->segment(1).'/index');
}
}else{
echo $this->session->set_flashdata('message', '<div class="alert alert-danger"><center>Security Code salah!</center></div>');
redirect($this->uri->segment(1).'/index');
}
}else{
if ($this->session->level!=''){
redirect($this->uri->segment(1).'/home');
}else{
$this->load->helper('captcha');
$vals = array(
'img_path' => './captcha/',
'img_url' => base_url().'captcha/',
'font_size' => 17,
'img_width' => '320',
'img_height' => 33,
'border' => 0,
'word_length' => 5,
'expiration' => 7200
);
$cap = create_captcha($vals);
$data['image'] = $cap['image'];
$this->session->set_userdata('mycaptcha', $cap['word']);
$data['title'] = 'Users › Log In';
$this->load->view('administrator/view_login',$data);
}
}
}
//cek_login
public function cek_login($username,$password,$table){
return $this->db->query("SELECT * FROM $table where username='".$this->db->escape_str($username)."' AND password='".$this->db->escape_str($password)."' AND blokir='N'");
}
1 Jawaban:
<div>Kurang lebih ini langkah-langkah untuk memastikan bahwa hanya nama pengguna dengan angka 1 atau 191290 yang dapat masuk:<br><br>1. Pada fungsi cek_login()
, tambahkan pemeriksaan untuk melihat apakah digit ketiga dari nama pengguna sama dengan 1. Jika iya, lanjutkan dengan sisa fungsi seperti biasa. Jika tidak, maka kembalikan nilai false.<br>2. Pada fungsi index()
, setelah kamu memanggil fungsi cek_login()
, periksa nilai kembaliannya. Jika false, maka tampilkan pesan kesalahan dan arahkan pengguna kembali ke halaman login. Jika true, maka masukkan pengguna dan arahkan mereka ke halaman utama.<br><br>Berikut contoh implementasi:<br><br><br></div><pre>// cek_login
public function cek_login($username, $password, $table)
{
// Periksa apakah digit ketiga dari nama pengguna sama dengan 1
if (substr($username, 2, 1) === '1') {
// Lanjutkan dengan sisa fungsi seperti biasa
return $this->db->query("SELECT * FROM $table WHERE username='".$this->db->escape_str($username)."' AND password='".$this->db->escape_str($password)."' AND blokir='N'");
} else {
// Kembalikan false
return false;
}
}
// index function index() { if (isset($_POST['submit'])) { if ($this->input->post() && (strtolower($this->input->post('security_code')) == strtolower($this->session->userdata('mycaptcha')))) { $username = $this->input->post('a', TRUE); $password = hash("sha512", md5($this->input->post('b', TRUE))); $cek = $this->model_app->cek_login($username, $password, 'users'); $row = $cek->row_array(); $total = $cek->num_rows(); if ($total > 0) { $this->session->set_userdata('upload_image_file_manager', true); $this->session->set_userdata(array( 'username' => $row['username'], 'level' => $row['level'], 'id_session' => $row['id_session'] )); redirect($this->uri->segment(1) . '/home'); } else { echo $this->session->set_flashdata('message', '<div class="alert alert-danger"><center>Username dan Password Salah!!</center></div>'); redirect($this->uri->segment(1) . '/index'); } } else { echo $this->session->set_flashdata('message', '<div class="alert alert-danger"><center>Security Code salah!</center></div>'); redirect($this->uri->segment(1) . '/index'); } } else { if ($this->session->level != '') { redirect($this->uri->segment(1) . '/home'); } else { $this->load->helper('captcha'); $vals = array( 'img_path' => './captcha/', 'img_url' => base_url() . 'captcha/', 'font_size' => 17, 'img_width' => '320', 'img_height' => 33, 'border' => 0, 'word_length'
=> 5, 'expiration' => 7200 );
$cap = create_captcha($vals);
$data['image'] = $cap['image'];
$this-&gt;session-&gt;set_userdata('mycaptcha', $cap['word']);
$data['title'] = 'Users &amp;rsaquo; Log In';
$this-&gt;load-&gt;view('administrator/view_login', $data);
}
}
}</pre>
Tanggapan
baik terimakasih, saya akan mencobanya terlebih dahulu, jika ini berhasil saya akan menghubungi anda