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 &rsaquo; 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'");
    }

avatar tumbalakun_google_6722
@tumbalakun_google_6722

5 Kontribusi 0 Poin

Diperbarui 9 bulan yang lalu

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-&gt;db-&gt;query("SELECT * FROM $table WHERE username='".$this-&gt;db-&gt;escape_str($username)."' AND password='".$this-&gt;db-&gt;escape_str($password)."' AND blokir='N'"); } else { // Kembalikan false return false; } }

// index function index() { if (isset($_POST['submit'])) { if ($this-&gt;input-&gt;post() &amp;&amp; (strtolower($this-&gt;input-&gt;post('security_code')) == strtolower($this-&gt;session-&gt;userdata('mycaptcha')))) { $username = $this-&gt;input-&gt;post('a', TRUE); $password = hash("sha512", md5($this-&gt;input-&gt;post('b', TRUE))); $cek = $this-&gt;model_app-&gt;cek_login($username, $password, 'users'); $row = $cek-&gt;row_array(); $total = $cek-&gt;num_rows(); if ($total &gt; 0) { $this-&gt;session-&gt;set_userdata('upload_image_file_manager', true); $this-&gt;session-&gt;set_userdata(array( 'username' =&gt; $row['username'], 'level' =&gt; $row['level'], 'id_session' =&gt; $row['id_session'] )); redirect($this-&gt;uri-&gt;segment(1) . '/home'); } else { echo $this-&gt;session-&gt;set_flashdata('message', '&lt;div class="alert alert-danger"&gt;&lt;center&gt;Username dan Password Salah!!&lt;/center&gt;&lt;/div&gt;'); redirect($this-&gt;uri-&gt;segment(1) . '/index'); } } else { echo $this-&gt;session-&gt;set_flashdata('message', '&lt;div class="alert alert-danger"&gt;&lt;center&gt;Security Code salah!&lt;/center&gt;&lt;/div&gt;'); redirect($this-&gt;uri-&gt;segment(1) . '/index'); } } else { if ($this-&gt;session-&gt;level != '') { redirect($this-&gt;uri-&gt;segment(1) . '/home'); } else { $this-&gt;load-&gt;helper('captcha'); $vals = array( 'img_path' =&gt; './captcha/', 'img_url' =&gt; base_url() . 'captcha/', 'font_size' =&gt; 17, 'img_width' =&gt; '320', 'img_height' =&gt; 33, 'border' =&gt; 0, 'word_length'

=&gt; 5, 'expiration' =&gt; 7200 );

        $cap = create_captcha($vals);
        $data[&#039;image&#039;] = $cap[&#039;image&#039;];
        $this-&amp;gt;session-&amp;gt;set_userdata(&#039;mycaptcha&#039;, $cap[&#039;word&#039;]);
        $data[&#039;title&#039;] = &#039;Users &amp;amp;rsaquo; Log In&#039;;
        $this-&amp;gt;load-&amp;gt;view(&#039;administrator/view_login&#039;, $data);
    }
}

}</pre>

avatar adamajalah27
@adamajalah27

119 Kontribusi 40 Poin

Dipost 9 bulan yang lalu

Tanggapan

baik terimakasih, saya akan mencobanya terlebih dahulu, jika ini berhasil saya akan menghubungi anda

Login untuk ikut Jawaban