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

时间:2012-05-29 02:53:43

标签: php codeigniter

我正在使用的第三方服务将用户返回到以下网址:

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()来实现这一点,但不记得细节。

4 个答案:

答案 0 :(得分:1)

不确定putenv,但如果情况变得更糟,你可以通过爆炸$_SERVER['QUERY_STRING']来获取get数组的内容

获取不需要启用,您仍然可以访问。

答案 1 :(得分:0)

尝试使用重定向:

<?php
$id = $_GET['id'];
$something = $_GET['something'];
header('Location: http://www.site.com/' . $id . '/' . $something);

只要初始something.php请求直接发送到该文件而不是index.php,CodeIgniter就不会运行(实际上,这取决于你的.htaccess [或等效]文件,所以你可能需要调整它。)

这是我能想到的最安全的方法,你不必分解CodeIgniter的程序流程或在你的应用程序中启用查询字符串,这可能是不安全的。

答案 2 :(得分:0)

也许我误解了你的架构,但你不能只为启动编码器启用GET吗?

请参阅文档中的$config['allow_get_array']

http://codeigniter.com/user_guide/libraries/input.html

在同一页面上查看$this->input->get() ..

答案 3 :(得分:0)

尝试

$this->config->set_item("allow_get_array",TRUE); 
parent::__construct();之前的控制器构造函数中

  

新的时候会自动调用安全过滤功能   控制器被调用。它执行以下操作:

     

如果$ config ['allow_get_array']为FALSE(默认为TRUE),则销毁   全局GET数组。