Postingan lainnya
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