我正在尝试将两段代码集成在一起。现有代码已生成哈希代码,并使用此 URL 调用该函数
header(Location: http://".$_SERVER['HTTP_HOST']."/subfolder/controller.php?document&validate&patient_id=".$pid."&document_id=".$nid."&process=true");
有没有另一种方法可以在不执行标头重定向的情况下执行此功能,因为标头重定向导致代码在重定向时停止处理。
在控制器文件中,只有一行回显控制器::act($_GET);
我试图将其转换为函数。我试过了。
include_once controller.php //class file
function hash_tag($pid, $nid){
$filetag = "document&validate&patient_id=".$pid."&document_id=".$nid."&process=true";
echo Controller::act($filetag);
}
hashtag($pid, $nid);
任何帮助将不胜感激。控制器.class.php文件的代码可以在这里看到https://github.com/juggernautsei/Drag-N-Drop/blob/master/library/classes/Controller.class.php
您没有在controller.php
中发布代码,但考虑到您的第一种方法是通过 url 参数访问该代码,我假设您正在该代码中执行变量作为GET
变量(例如:$_GET['patient_id']
)。
如果是这种情况,现在您正在通过include_once
执行该代码,您必须更改在controller.php
中设置变量的方式,因为没有更多的$_GET
。
您正在尝试将字符串从 GET 请求传递到控制器。但是 Contract::act() 适用于数组 ($_GET 是一个超全局数组)。
在函数内部构建一个数组并将函数的参数分配给它,然后将其传递给控制器,如下所示:
include_once 'controller.php';
function hash_tag($pid, $nid)
{
$array = array();
$array['document'] = 1;
$array['validate'] = 1;
$array['patient_id'] = $pid:
$array['document_id'] = $nid;
$array['process'] = 1;
echo Controller::act($array);
}
hashtag($pid, $nid);