關於用ini_set修改配置項的問題

來源:互聯網
上載者:User
首先我需要用ini_set('allow_url_include', "1");來修改下配置項來使得頁面可以允許url包含,但是我這麼寫了之後還是沒起作用,請問這個是為什嗎?
再就是我開啟這個實在是我想不到好的方法了,只能暫時開啟下回頭然後再考慮好的方法,那我想問下開啟這一項會對安全性有造成影響嗎?或者這個選項一般是開啟好些還是最好不要開啟??


回複討論(解決方案)

allow_url_include 這個設定要求 allow_url_fopen 也要開啟。

allow_url_include 不能在代碼中設定。只能在 php.ini 中設定
allow_url_include 的本意是通過統一資源定位來實現代碼資源的共用,有如 html 的 src=xxx.js
但是對方伺服器並不知道 http://host/code.php 是源於 include 的,所以美好願望並不能實現
這能做到 include 非 php 檔案中的 php 代碼
如果只是為了擷取對方程式的執行結果,那麼 file_get_contents 也就可以了

allow_url_include 這個設定要求 allow_url_fopen 也要開啟。



那個我是開著的,但是還是不行

allow_url_include 不能在代碼中設定。只能在 php.ini 中設定
allow_url_include 的本意是通過統一資源定位來實現代碼資源的共用,有如 html 的 src=xxx.js
但是對方伺服器並不知道 http://host/code.php 是源於 include 的,所以美好願望並不能實現
這能做到 include 非 php 檔案中的 php 代碼
如果只是為了擷取對方程式的執行結果,那麼 file_get_contents 也就可以了



嗯,一般情況下那個是可以的,我開始也嘗試了那種方法,但是還是不行,沒有達到我想要的效果。現在我解決了,但是這個方法比較那個什麼,我也不知道怎麼講,我把我想要的效果敲在樓下,你幫我看看我的實現方法或者你幫我看看有什麼好的方法能夠實現

那首先,我要實現一套MVC模式的系統,然後有一個入口檔案index.php,一個主類檔案Myth.class,一個模板編譯類檔案,MythTemplate.class,然後我的控制器檔案是一個類,拿預設控制器來說是這樣的:
class IndexAction extnnds MythTemplate {
public function index() {
$this->assign('var1', 'value1');
$_obj = Myth::Action('public/header', $this);
}
}
那個調用是調用模板類的方法想模板中註冊變數。。然後模板編譯之後產生一個.php檔案,那我直接include找個php檔案這樣的話就可以訪問,這樣是沒問題的。
那問題是什麼呢?就是因為一般網頁中頭部(header)和底部(footer)是公用的所以需要單獨拿出來然後在index.html的模板中引入header.html和footer.html,那我就在模板中子定義一個標籤來實現包含這個header.html的檔案,那因為我的頁面的訪問地址形式是這樣的:
www.fantan.com/index/index.html
這裡是訪問首頁,那在首頁中要包含header.html並且通過header.html的控制器:
class PublicAction extends MythTemplate {
public function header() {
$this->assign('var2', 'value2');
}
}
來註冊header.html模板中的變數的話就需要包含這個頁面,這樣的話就出現了我講的那個問題,因為如果通過改變php.ini檔案的那個選項的話就其實就可以實現了,但是我總覺得這種不太好,所以我就沒用了後面,那我現在使用的方法是在Myth類中增加一個靜態方法:
class Myth{
public static functin Action('public/header', $_that) {
$_obj = new public();
$_obj->_data = &$_that;
}
}
這裡$_data數組是模板類中儲存模板變數的數組,這樣把兩個不同對象中的$_data數組通過關聯達到資料一致的效果,但是這個訪問唯一不好的就是這裡:
$_obj = Myth::Action('public/header', $this);
就是你要調用必須顯式的傳遞$this,我覺得這裡可以不用傳的,但是我又想不到好點的方法。。。。

不知道說清楚沒,但是現在我的問題已經不是開始的那個,變成了剛剛提到的那個就是:不顯式的傳遞$this,但是可以在Action方法中擷取調用這個方法的方法所在類的對象怎麼擷取?

allow_url_include 不能在代碼中設定。只能在 php.ini 中設定
allow_url_include 的本意是通過統一資源定位來實現代碼資源的共用,有如 html 的 src=xxx.js
但是對方伺服器並不知道 http://host/code.php 是源於 include 的,所以美好願望並不能實現
這能做到 include 非 php 檔案中的 php 代碼
如果只是為了擷取對方程式的執行結果,那麼 file_get_contents 也就可以了

但是現實allow_url_include 的可配置範圍為PHP_INI_ALL,也就是可以用ini_set()來設定,但是確實設定不了,是不是官方手冊寫錯了
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.