0

次のコードを使用して、基本的なログインフォームを設定しようとしました。

<?=form_open(base_url() . 'main/login'); ?>

ただし、フォームを送信した後、URLは次のように表示されます。

example.com/main/http//example.com/http//example.com/main/login

したがって、本質的には、何らかの理由で、ベースURLがコントローラー/メソッド宣言の前に2回出力されると思います。設定ファイルのベースURL値をクリアすると、アプリケーションは正常に動作します。しかし、私はこれを引き起こす可能性があるものに興味があります。追加情報については、仮想ホストを使用してxamppに取り組んでおり、ドキュメントルートにある.htaccessファイルを使用してmod-rewriteを実行しています。

4

4 に答える 4

2

フォームヘルパーを使用すると、CodeIgniterは自動的にbase_urlをフォームのアクションに追加します。

たとえば、次を使用できます。

<?=form_open('main/login'); ?>

これにより、http // example.com / main/loginが生成されます。

そして正しいURL!ものすごく単純!:D詳細情報:http: //codeigniter.com/user_guide/helpers/form_helper.html

于 2012-07-28T05:20:48.387 に答える
1

application/configconfig.phpの下のファイルには次の設定があります。

$config['base_url'] = '';

フォルダ/ディレクトリのパスを指定します。例えば:

$config['base_url'] = 'http://localhost/ci_test/';

プロトコル(http://)に言及することを忘れないでください。または、フォームを開くsite_url()代わりにこの方法を試してください。base_url()関数を使用する場合はスキップしてform_open()ください:

<form action="<?php echo site_url('main/login'); ?>"> ... </form>

または

<?php form_open('main/login'); ?>

詳細については、http://codeigniter.com/user_guide/helpers/url_helper.htmlをご覧ください。

.htaccess使用したファイルがわからない。しかし、これは答えのコードイグナイターかもしれません:アンカータグのhref属性でbase_url()をエコーすると、2回エコーするのはなぜですか?

于 2012-07-28T05:06:41.333 に答える
0

パラメータで試してください:

<?=form_open(base_url('main/login')); ?>

また

<?=form_open site_url('main/login')); ?>

プレフィックスを追加するためにも

于 2012-07-28T01:26:36.087 に答える
0

使用できます

<?php echo form_open(base_url(main/login)); ?>

一部のブラウザでは機能しないためではなく、「エコー」を使用する必要があります。

于 2012-08-21T11:57:51.043 に答える