1

私は次のようなコントローラーを持っていますRegister

class Register extends CI_Controller
{
    public function index()
    {
        $this->load->view('register');
    }

    public function create()
    {
        $this->load->library('form_validation');
        //set rules here

        if ($this->form_validation->run() == TRUE)
        {
            //everything checks out
        }
        else
        {
            $this->load->view('register');
        }
    }
}

ビューには、に投稿するフォームが含まれていregister/createます。

私の問題は、フォームにアクセスしlocalhost/registerて間違って入力すると、フォームがリロードされますが、URLは次のようになります。

localhost/register/register/create

もう一度間違って入力すると

localhost/register/register/register/create

等々...

これはだと思いhtaccessます。オンラインで入手できるいくつかの標準のCodeIgniterhtaccessファイルを使用してみましたが、この問題を修正するものはありません。私はこれをWAMPサーバーで使用しています。

編集

今のところ、ビューファイルはフォームのみで構成されています。私はCodeIgniterフォームヘルパーの代わりに直接HTMLを使用することを好みます。

<form id="register_form" method="post" action="register/create" title="Create an Account">
    <!-- input fields -->
</form>
4

4 に答える 4

4

完全なURLを使用します。current_url()またはフォームsite_url('register')のアクションで。

base_url()ドメインパスでなくてもサイトを実行できるため、これらまたはプレフィックスのいずれかを使用することをお勧めします。
たとえば、必要に応じて、example.comでのみ実行できるのではなく、example.com /my_site/でサイトを実行できます。

フォームのアクションを最大限に制御するには、常に最初から始めてhttp://、相対URL(たとえば、action = "register")を避けてください。

于 2012-04-25T16:18:52.420 に答える
3

フォームのアクションパラメータをからregister/createに変更します/register/create。相対URLに投稿しています。アクションパラメータの先頭にスラッシュを追加することで、URLを絶対的なものにします。したがって、フォームは常にに投稿されhttp://domain-name/register/createます。

于 2012-04-25T16:18:33.923 に答える
2

私も同じ問題を抱えていました。次のように、ドメインの前にbase_urlを「http://」と入力することで対処できました。

$config['base_url'] = 'http://example.com';
于 2016-04-30T17:27:23.997 に答える
0

base_url()URLを追加します:

<a href="<?=base_url()?>/mypage">
于 2020-08-09T00:08:19.540 に答える