Можно ли вызвать функцию контроллера codeigniter из действия HTML-формы - PullRequest
0 голосов
/ 24 января 2019

У меня есть форма входа в HTML-шаблон и я хочу вызвать функцию контроллера codeigniter при отправке формы. Если html-страница находится вне папки CI, а имя папки CI - двоичное, Ctrl_signin - это мой контроллер, а chkvalidatelogin - моя функция, возможно ли это?

HTML-код формы:

<form action="binary/Ctrl_signin/chkvalidatelogin" method="post">
  <input type="email" name="username" class="email" placeholder="Username" required="" />
   <input type="password" name="Password" class="password" placeholder="Password" required="" />
    <input type="submit" value="Submit">
  </form>

Ctrl_signin Код контроллера:

function chkvalidatelogin(){

  if(isset($_POST['login']) && $_POST['login']=='login')
  {
    $username=$_POST['username'];
    $password = $_POST['password'];
    $data = $this->Mdl_signin->validatelogin('member',$username,$password);
    if($data>0)
    {
      $userdata=$this->Mdl_signin->fetchmemid($username);
      $mid=$userdata->mem_lid;
      $mid1=$userdata->username;
      $_SESSION['user'] = $mid1;
      $_SESSION['mlid'] = $mid;
      $_SESSION['username'] = $mid;
      $this->session->set_userdata('login','true');
      $msg['message']="successfully login";
      redirect(base_url().'Ctrl_signin/Dashboard',$msg);
    }
    else
    {
      $msg="login failed!!";
      redirect(base_url().'Ctrl_signin/signin?mesg='.$msg);
    }
  }
 }

Mdl_signin Код модели:

  function validatelogin($table,$mid,$password)
    {   
    $query=$this->db->query('select * from '.$table.' where username="'.$mid.'" and decrepted_password="'.$password.'"');
    return $query->num_rows();
    }
  function fetchmemid($username)
    {   
     $sql='select mem_lid,username from member where username="'.$username.'"';
     $query=$this->db->query($sql);
    return $query->row();
    }

Я пробовал приведенный выше код, но он показывает пустую страницу в функции url

1 Ответ

0 голосов
/ 25 января 2019

Это очень возможно. Просто укажите в действии формы полный URL-адрес, включая контроллер и метод, например example.com/controller/method

Обратите внимание, что если ваша защита CSRF включена, вы можете столкнуться с тем, что контроллер отказывается обрабатывать форму. Вам нужно было бы отключить CSRF на этом конкретном контроллере / методе (не очень рекомендуется), отключить CSRF вообще (абсолютно не рекомендуется) или найти способ выполнить проверки CSRF CI извне Codeigniter

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...