从另一个站点外部调用CI框架的概念

时间:2014-05-06 07:11:06

标签: php codeigniter curl

帮助,我输了。

从其他站点调用CI框架PHP的概念是什么? 我需要任何插件来帮助我实现它吗? 我必须使用CI来呼叫CI,我该如何解决这个问题? 它是POST DATA的输入数据问题吗?

我对网站进行了调查,但由于我无法让CI控制器正常运行,因此没有回复。

我尝试过XML,字符串,JSON,但它不起作用。

我已阅读Requests,Rest Server https://github.com/philsturgeon/codeigniter-restserver

如果对此有任何好的参考,请分享。

我有使用CURL的验证码。 但是当我试图将postData发布到登录页面时 网页没有响应。我想知道控制器是否没有收到任何发布数据。

 $postdata1 = "aid=" . urlencode($log["userlogin"]) . "&apw=" . urlencode($log["passlogin"]) . "&code=" . urlencode($captcha) . "&submitlogin=Login!";

 echo $postdata1;

curl_setopt ($ch, CURLOPT_URL,"$site/index.php/admin");
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7");
curl_setopt ($ch, CURLOPT_TIMEOUT, 20);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION,1);
curl_setopt ($ch, CURLOPT_AUTOREFERER,1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_COOKIEJAR, getcwd() . $cookie);
curl_setopt ($ch, CURLOPT_COOKIEFILE, getcwd() . $cookie);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata1);
curl_setopt ($ch, CURLOPT_POST, 1);
$result1 = curl_exec ($ch);

curl_close($ch);

篡改数据结果:

//POSTDATA=aid=admin&apw=admin&code=1272&submitlogin=Login!

更新: 干扰了几个小时后,我终于进入了控制器功能。     curl_setopt ($ch, CURLOPT_URL,"$site/index.php/admin/login");

管理员。 php function login();

1 个答案:

答案 0 :(得分:0)

好。所以几个小时后,我设法找到解决方案。

使用cURL页面的方式并不重要。 我选择了上面的方法。

调用CI控制器中的函数。我们可以这样做。 例如,我想访问登录。

curl_setopt ($ch, CURLOPT_URL,"$site/index.php/admin/login"); curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7"); curl_setopt ($ch, CURLOPT_TIMEOUT, 20); curl_setopt ($ch, CURLOPT_FOLLOWLOCATION,1); curl_setopt ($ch, CURLOPT_AUTOREFERER,1); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_COOKIEJAR, getcwd() . $cookie); curl_setopt ($ch, CURLOPT_COOKIEFILE, getcwd() . $cookie); curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata1); curl_setopt ($ch, CURLOPT_POST, 1); $result1 = curl_exec ($ch);

如果我想发送更多参数,只需根据Controller中的函数参数将其添加到URL中。

例如。

Controller.php这样 function editpw($adminid,$password){}

curl_setopt ($ch, CURLOPT_URL,"$site/index.php/admin/editpw/$adminid/$password"); curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7"); curl_setopt ($ch, CURLOPT_TIMEOUT, 20); curl_setopt ($ch, CURLOPT_FOLLOWLOCATION,1); curl_setopt ($ch, CURLOPT_AUTOREFERER,1); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_COOKIEJAR, getcwd() . $cookie); curl_setopt ($ch, CURLOPT_COOKIEFILE, getcwd() . $cookie); curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata1); curl_setopt ($ch, CURLOPT_POST, 1); $result1 = curl_exec ($ch);

你去。