• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

thinkPHP 的路由器规则生成的 url 怎么接收 post 数据?

PHP admin 1年前 (2018-06-08) 10次浏览 未收录 0个评论
文章目录[隐藏]

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

以下是vba代码:

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

以下成功:

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


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


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


错误提示:

"
:(
非法操作:1
错误位置
FILE: C:AppServwwwyb1ThinkPHPLibraryThinkController.class.php  LINE: 170
TRACE
#0 C:AppServwwwyb1ThinkPHPLibraryThinkController.class.php(170): E('xE9x9Dx9ExE6xB3x95xE6x93x8DxE4xBDx9C:1')
#1 [internal function]: ThinkController->__call('1', '')
#2 C:AppServwwwyb1ThinkPHPLibraryThinkApp.class.php(114): ReflectionMethod->invokeArgs(Object(HomeControllerCurdController), Array)
#3 C:AppServwwwyb1ThinkPHPLibraryThinkApp.class.php(204): ThinkApp::exec()
#4 C:AppServwwwyb1ThinkPHPLibraryThinkThink.class.php(120): ThinkApp::run()
#5 C:AppServwwwyb1ThinkPHPThinkPHP.php(97): ThinkThink::start()
#6 C:AppServwwwyb1index.php(27): require('C:\AppServ\www\...')
#7 {main}
ThinkPHP3.2.3 { Fast & Simple OOP PHP Framework } -- [ WE CAN DO IT JUST THINK ]
"

回复内容:

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

以下是vba代码:

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

以下成功:

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


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


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


错误提示:

"
:(
非法操作:1
错误位置
FILE: C:AppServwwwyb1ThinkPHPLibraryThinkController.class.php  LINE: 170
TRACE
#0 C:AppServwwwyb1ThinkPHPLibraryThinkController.class.php(170): E('xE9x9Dx9ExE6xB3x95xE6x93x8DxE4xBDx9C:1')
#1 [internal function]: ThinkController->__call('1', '')
#2 C:AppServwwwyb1ThinkPHPLibraryThinkApp.class.php(114): ReflectionMethod->invokeArgs(Object(HomeControllerCurdController), Array)
#3 C:AppServwwwyb1ThinkPHPLibraryThinkApp.class.php(204): ThinkApp::exec()
#4 C:AppServwwwyb1ThinkPHPLibraryThinkThink.class.php(120): ThinkApp::run()
#5 C:AppServwwwyb1ThinkPHPThinkPHP.php(97): ThinkThink::start()
#6 C:AppServwwwyb1index.php(27): require('C:\AppServ\www\...')
#7 {main}
ThinkPHP3.2.3 { Fast & Simple OOP PHP Framework } -- [ WE CAN DO IT JUST THINK ]
"

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

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

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


39MO , 版权所有丨如未注明 , 均为原创丨转载请注明原文链接:thinkPHP 的路由器规则生成的 url 怎么接收 post 数据?
喜欢 (0)
[1353713598@qq.com]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址