【发布时间】:2019-06-17 20:07:09
【问题描述】:
我在 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 上显示空白页
【问题讨论】:
-
从请求中调用控制器(通过浏览器/表单操作中的 URL 等)几乎就是控制器的用途,因此听起来您想使用 CI 的默认功能。有没有经过the manual about controllers?
-
从外部 CI 应用调用控制器:stackoverflow.com/questions/12257538/…
-
对不起,我的编码错误,当我将提交按钮代码从 更改为 它工作正常
标签: php html codeigniter