0

これは私のベース URL です。

$config['base_url'] = '//'. $_SERVER['HTTP_HOST']. 
str_replace(basename($_SERVER['SCRIPT_NAME']), '', $_SERVER['SCRIPT_NAME']);

これは私の見解です:

<form action="<?php echo $this->config->base_url().'index.php/certification/add/'; ?>" 
method="post" accept-charset="utf-8" onsubmit ='return false;'>

結果は次のとおりです。

<form action="//localhost/php/index.php/localhost/php/index.php/certification/add/" 
method="post" accept-charset="utf-8" onsubmit="return false;">  

なぜこれが起こるのですか?(プロトコル相対 URL がわからない場合は、これを読んでください。

4

3 に答える 3

0

プレフィックスhttpまたはhttpsプロトコルをbase_urlに設定することはありません。したがって、フォームアクションのURLは予想どおり//で始まります。

于 2012-07-09T08:12:56.773 に答える
0

ベースURLを正しく取得しているようには見えません。同様の質問はすでにここで回答されています。

于 2012-07-09T08:13:11.393 に答える
0

$config['base_url']ファイル/スクリプトパスを含めないでください。それ自体をエコーアウトする場合、あなたの場合は、「// localhost /php/」を取得するだけです。

追加のSCRIPT_NAMEのもので何をしようとしていますか?

私が正しく理解している場合は、その部分を取り除き、次を使用することをお勧めします。

<form action="<?php echo $this->config->base_url('index.php/certification/add/')"

(構成からスクリプト部分を削除した後は、現在のように機能すると思いますが、これが「適切なCIの方法」であると思います)

于 2012-07-09T10:09:21.353 に答える