Home  >  Article  >  Backend Development  >  How does the URL generated by thinkPHP's router rules receive post data?

How does the URL generated by thinkPHP's router rules receive post data?

WBOY
WBOYOriginal
2016-12-01 00:57:091736browse

我用vba 给 php 传递参数的时候,如果是普通的 php 文件,就可以接受到,而用 thinkPHP 框架的生成url,就收不到,怎么回事呢?

以下是vba代码:

<code>    Set obj = CreateObject("Microsoft.XMLHTTP")
    obj.Open "POST", sUrl, False
    obj.setRequestHeader "CONTENT-TYPE", "application/x-www-form-urlencoded"
    obj.send (sData)</code>

以下成功:

<code>sUrl = "http://localhost/VbaPostDemo.php"
sData = "a=1&b=2"


//对应目录:C:\AppServ\www\VbaPostDemo.php
        
<?php
       echo $_POST["a"];
    </code>
<code>以下失败:
sUrl = "http://localhost/yb1/Home/curd/futuresDemo"
sData = "a=1&b=2"


控制器function :
function futuresDemo()
{
    echo $_REQUEST["a"];
}


错误提示:

"
:(
非法操作:1
错误位置
FILE: C:\AppServ\www\yb1\ThinkPHP\Library\Think\Controller.class.php  LINE: 170
TRACE
#0 C:\AppServ\www\yb1\ThinkPHP\Library\Think\Controller.class.php(170): E('\xE9\x9D\x9E\xE6\xB3\x95\xE6\x93\x8D\xE4\xBD\x9C:1')
#1 [internal function]: Think\Controller->__call('1', '')
#2 C:\AppServ\www\yb1\ThinkPHP\Library\Think\App.class.php(114): ReflectionMethod->invokeArgs(Object(Home\Controller\CurdController), Array)
#3 C:\AppServ\www\yb1\ThinkPHP\Library\Think\App.class.php(204): Think\App::exec()
#4 C:\AppServ\www\yb1\ThinkPHP\Library\Think\Think.class.php(120): Think\App::run()
#5 C:\AppServ\www\yb1\ThinkPHP\ThinkPHP.php(97): Think\Think::start()
#6 C:\AppServ\www\yb1\index.php(27): require('C:\\AppServ\\www\\...')
#7 {main}
ThinkPHP3.2.3 { Fast & Simple OOP PHP Framework } -- [ WE CAN DO IT JUST THINK ]
"

</code>

回复内容:

我用vba 给 php 传递参数的时候,如果是普通的 php 文件,就可以接受到,而用 thinkPHP 框架的生成url,就收不到,怎么回事呢?

以下是vba代码:

<code>    Set obj = CreateObject("Microsoft.XMLHTTP")
    obj.Open "POST", sUrl, False
    obj.setRequestHeader "CONTENT-TYPE", "application/x-www-form-urlencoded"
    obj.send (sData)</code>

以下成功:

<code>sUrl = "http://localhost/VbaPostDemo.php"
sData = "a=1&b=2"


//对应目录:C:\AppServ\www\VbaPostDemo.php
        
<?php
       echo $_POST["a"];
    </code>
<code>以下失败:
sUrl = "http://localhost/yb1/Home/curd/futuresDemo"
sData = "a=1&b=2"


控制器function :
function futuresDemo()
{
    echo $_REQUEST["a"];
}


错误提示:

"
:(
非法操作:1
错误位置
FILE: C:\AppServ\www\yb1\ThinkPHP\Library\Think\Controller.class.php  LINE: 170
TRACE
#0 C:\AppServ\www\yb1\ThinkPHP\Library\Think\Controller.class.php(170): E('\xE9\x9D\x9E\xE6\xB3\x95\xE6\x93\x8D\xE4\xBD\x9C:1')
#1 [internal function]: Think\Controller->__call('1', '')
#2 C:\AppServ\www\yb1\ThinkPHP\Library\Think\App.class.php(114): ReflectionMethod->invokeArgs(Object(Home\Controller\CurdController), Array)
#3 C:\AppServ\www\yb1\ThinkPHP\Library\Think\App.class.php(204): Think\App::exec()
#4 C:\AppServ\www\yb1\ThinkPHP\Library\Think\Think.class.php(120): Think\App::run()
#5 C:\AppServ\www\yb1\ThinkPHP\ThinkPHP.php(97): Think\Think::start()
#6 C:\AppServ\www\yb1\index.php(27): require('C:\\AppServ\\www\\...')
#7 {main}
ThinkPHP3.2.3 { Fast & Simple OOP PHP Framework } -- [ WE CAN DO IT JUST THINK ]
"

</code>

使用其他工具Post测试下呢, 比如Postman, 看看会不会出现这种情况.如果也出现那么说明应该是你代码问题 或者是TP问题. 如果没有 那么说明是你vba问题.

估计是路径错了,你自己手动吧路径在浏览器敲一下,应该是报一样的错!

m,c,a 禁用(内部已使用) 这问题确实比较扯淡

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn