簡體   English   中英

包括來自普通PHP文件的codeigniter?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM