0

我尝试在 Codeigniter 中进行简单的用户登录,但我无法通过 Post 获取表单数据。

看简单代码控制器

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,为什么,我可以帮助某人吗?

4

3 回答 3

0

Have you tried using base_url() ? maybe you have a problem in your .htaccess. try to use the code below.

  <?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(); 
       ?>
于 2015-04-02T00:09:37.887 回答
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';如果您不将控制器名称或方法名称更改为值,则可以选择删除不需要的路由规则。

于 2012-11-27T15:34:23.050 回答
0

好的,问题已解决,虽然不好,但可以。我已在 config.php 中将属性 index_page 设置为“”以获得清晰的 URL,但是当设置“index.php”时一切正常...

不知道这是否正常

于 2012-11-30T11:35:39.443 回答