2012-07-09 52 views
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;"> 

爲什麼會出現這種情況? (Read this如果你不知道相對協議網址是什麼。

回答

0

你從來沒有前綴HTTP或HTTPS協議的BASE_URL。因此,作爲預期表單操作的網址會//開始。

+0

http://stackoverflow.com/questions/550038/is-it-valid-to-replace-http-with-in-a-script-src- http – aWebDeveloper 2012-07-09 08:33:38

0

它看起來並不像你正確地獲得基本的URL。類似的問題已經回答here

+0

http://stackoverflow.com/questions/550038/is-it-valid-to-replace-http-with-in-a-script-src-http – aWebDeveloper 2012-07-09 08:33:43

0

$config['base_url']如果您回聲它在它自己的,你的情況應該不包括文件/腳本路徑,你應該只是越來越''本地主機/ PHP /'

你在嘗試什麼要處理額外的SCRIPT_NAME?

如果我理解正確的,你會想擺脫那部分,然後用:

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

(我相信它會按照您從配置刪除腳本部分之後,現在擁有它,但我假設這是做這件事的'適當的CI方式')