[英]Including codeigniter from a normal PHP file?
我正在使用的第三方服務將用戶返回到如下網址:
site.com/something.php?id=XXX&something=abc....
因此,我只需要能夠為網站的一部分接受$_GET
參數。
有沒有一種方法可以將文件放置在codeigniter的應用程序目錄之外,這將執行以下操作:
<?
$id = $_GET['id'];
$something = $_GET['something'];
//Do something so codeigniter thinks this is a request to site.com/process/$id/$something
require('index.php'); //codeigniter's index.php file
?>
我記得以前使用putenv()
實現此目的,但不記得詳細信息。
不確定putenv,但是如果情況變得更糟,則可以通過展開$_SERVER['QUERY_STRING']
獲得get數組的內容。
無需啟用獲取功能,您仍然可以訪問。
嘗試僅使用重定向:
<?php
$id = $_GET['id'];
$something = $_GET['something'];
header('Location: http://www.site.com/' . $id . '/' . $something);
只要最初的something.php
請求是直接向該文件而不是index.php
發出的,CodeIgniter就不會運行(實際上,這取決於您的.htaccess [或等效文件],因此您可能需要對其進行調整)。
這是我想到的最安全的方法,您不必破壞CodeIgniter的程序流程或在應用程序中啟用查詢字符串,這可能是不安全的。
也許我誤解了您的體系結構,但是您是否不能僅為GET啟用GET。
請參閱文檔中的$config['allow_get_array']
:
http://codeigniter.com/user_guide/libraries/input.html
並在同一頁面上查看$this->input->get()
。
嘗試
$this->config->set_item("allow_get_array",TRUE);
在控制器的構造函數中,位於parent::__construct();
之前parent::__construct();
。
調用新控制器時,將自動調用安全篩選功能。 它執行以下操作:
如果$ config ['allow_get_array']為FALSE(默認值為TRUE),則銷毀全局GET數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.