URL / form_open问题

时间:2014-01-09 00:31:48

标签: php codeigniter url mod-rewrite

我是Codeigniter的新手。我一直在处理我正在进行注册/注册的表单的问题。似乎我正在使用form_open(CONTROLLER/METHOD);错误的我已经配置了错误。

以下是我正在使用的表单:

<?php
    echo form_open("main/login_validation"); 

    echo validation_errors();   

    echo "<p> Email:";
    echo form_input('email');
    echo "</p>";

    echo "<p> Password:";
    echo form_password('password');
    echo "</p>";

    echo "<p>";
    echo form_submit('login_submit', 'Login');
    echo "</p>";



    echo  form_close();
    ?>

主控制器的片段:

      public function login_validation () {

        $this->load->library('form_validation');    

        $this->form_validation->set_rules('email', 'Email', 'required');
        $this->form_validation->set_rules('password', 'Password', 'required|md5');

        if ($this->form_validation->run()){

                redirect('main/view_members');              
            }
        else {
            $this->load->view('login');             
            }
    }   

echo form_open('main/login_validation');看起来对我不错,但是很有意思 当我测试它时,这就是我得到的:

http://localhost/main/localhost/main/login_validation

我已经用localhost替换了实际的URL,因为我不想在这里发布我的网站。 我正在使用mod_rewrite / Apache2服务器。我可以添加任何帮助,请告诉我。

2 个答案:

答案 0 :(得分:0)

echo form_open('controller / function');

您必须使用单引号进行codeigniter语法

答案 1 :(得分:0)

看起来你可能有三个错误:

  1. 您的config.php中可能包含无效的域名/主机名(我通常将其留空或将其设置为确切的基本域名)

    $config['base_url'] = ''; // leave blank to be safe or set to known hostname

  2. 或者您没有正确地呼叫/controller/method。您需要确保上面的代码,您调用的内容位于文件夹/application/controllers/中,控制器名称为Main(文件:main.php)。

    Main控制器内部,您应该有一个名为login_validation()的函数,否则会失败。

  3. 或者最后,调用form_open("main/login_validation");form_open("/main/login_validation");

    是一个问题

    (注意第一个 / ?)