Php CodeIgniter can';t post数据
我尝试在Codeigniter中进行简单的用户登录,但我无法通过Post获得表单数据 看看简单的代码 控制器Php CodeIgniter can';t post数据,php,codeigniter,post,Php,Codeigniter,Post,我尝试在Codeigniter中进行简单的用户登录,但我无法通过Post获得表单数据 看看简单的代码 控制器 class User extends CI_Controller{ function login(){ $this->load->helper('form'); $this->load->library('form_validation'); $this->form_validation->set_rules('user
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");
}
}
表格:
<?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,为什么,我可以帮助别人吗 我看到的问题是你的表单打开(“用户/登录”);没有返回正确的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'代码>因为如果不将控制器名称或方法名称更改为值,则不需要它 好的,问题已经解决了,不太好,但它可以工作。
我已在config.php中将属性索引页面设置为“”以用于
清除URL,但当设置为'index.php'时,所有这些都可以正常工作
不知道这是否正常您是否尝试过使用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();
?>
用户名
紫苏
与此无关(您可以将其从项目中删除)。如果这个页面的url是你可以把hm不它不是问题,我检测到的问题是,默认的控制器可以获得post数据,但所有其他控制器不是,结果代码是甚至所有404只是由默认的_控制器不。。。我不明白:每次你只能在一个控制器中获取值,我很好奇你是如何尝试访问其他控制器中的值的。我想知道我是如何将它写在顶部的,我看到所有控制器都显示在浏览器上,只是它们有一个404错误代码,这让人困惑。我不需要将控制器添加到路由,只要我想用s特定路径覆盖它们,这正常吗?:DIts不正常,一次只使用一个控制器。如果您使用的控制器不止一个,那么您就有麻烦了,可以根据需要创建多个功能,而codeigniter具有非常好的路由功能,您不需要使用多个控制器
<?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();
?>