我尝试在Codeigniter中进行简单的用户登录,但我无法通过邮件获取表单数据。
查看简单代码 控制器
class User extends CI_Controller{
function login(){
$this->load->helper('form');
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'username', 'required');
$this->form_validation->set_rules('password', 'password', 'required');
$this->form_validation->set_error_delimiters('<em>','</em>');
if($this->input->post('weiter')){
if($this->form_validation->run()){
echo "okay";
}
}else{
$this->load->view("templates/header");
$this->load->view("user/login");
$this->load->view("templates/footer");
}
}
}
路由配置
$route['user/login'] = 'user/login';
形式:
<?php echo form_open("user/login");?>
<table>
<tr>
<td><label for="username">Username</label></td>
<td><input type="text" name="username"></td>
</tr>
<tr>
<td><label for="password">Passwort</label></td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td><input type="submit" name="weiter"></td>
<td></td>
</tr>
</table>
当我查看Chrome中的开发人员工具时,我看到它会发布帖子,但返回状态为404,为什么,我可以帮助某人吗?
答案 0 :(得分:0)
我能看到的问题是你的form_open(“user / login”);没有返回正确的URL,只需删除它并测试,使用以下代码进行查看
<form method="post">
<table>
<tr>
<td><label for="username">Username</label></td>
<td><input type="text" name="username"></td>
</tr>
<tr>
<td><label for="password">Passwort</label></td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td><input type="submit" name="weiter"></td>
<td></td>
</tr>
</table>
</form>
如果您不将控制器名称或方法名称更改为值,则可以选择删除路由规则$route['user/login'] = 'user/login';
,因为您不需要它。
答案 1 :(得分:0)
好的,问题解决了,不是很好但是有效。 我在config.php中将属性index_page设置为''为a 清除URL,但是当设置'index.php'时一切正常......
不知道这是否正常
答案 2 :(得分:0)
您是否尝试过使用base_url()?也许你的.htaccess有问题。尝试使用下面的代码。
<?php
echo form_open(base_url('user/login'));
?>
<table>
<tr>
<td><label for="username">Username</label></td>
<td><input type="text" name="username"></td>
</tr>
<tr>
<td><label for="password">Passwort</label></td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td><input type="submit" name="weiter"></td>
<td></td>
</tr>
</table>
<?php echo form_close();
?>