首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >amfPHP函数输入故障

amfPHP函数输入故障
EN

Stack Overflow用户
提问于 2009-12-04 23:27:02
回答 4查看 622关注 0票数 1

我正在编写一个amfPHP函数,它应该接受字符串输入。它接受字母数字字符没有问题,但不幸的是,如果我发送"2.UgnFl4kAWovazp_tVo6fHg__.86400.1260025200-571701419“作为参数,它返回的数据为"2”。

下面是函数(如您所见,非常简单)

代码语言:javascript
复制
function checkOpenSession($guid, $session_key) {
        return $session_key;
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-12-04 23:57:05

我只是用一个简单的设置尝试了一下,并且只需要将结果从服务浏览器写到一个文件中,这对我来说似乎是可以的。所以问题似乎出在呼叫端。

另一种可能是amfphp将返回值的数据类型从字符串更改为int,这是因为前导整数。尝试在返回字符串的开头添加一个字母数字字符,看看这样做会有什么效果。

票数 1
EN

Stack Overflow用户

发布于 2011-02-10 20:57:12

要绕过此服务浏览器错误,如果您希望参数上有字符串,并且此字符串以数字开头,请将您在服务浏览器上的输入用双引号引起来。我在通过服务浏览器测试一些方法时也遇到了同样的问题,它工作得很好。

票数 3
EN

Stack Overflow用户

发布于 2010-12-29 11:20:54

此行为实际上存在于AMFPHP服务浏览器(Bug)中,因此很容易将其误认为是AMFPHP将数字前导字符串转换为int。然而,问题出在发送代码上。例如,通过json网关发送urlencoded字符串可以正常工作(Objective C代码):

代码语言:javascript
复制
NSString *theUrl = [[NSString alloc] initWithFormat:@"%@/modules/amfphp/amfphp/json.php/MysqlRemoting.checkAuth/%@/%@/1", kServerBaseUrl, userName, passMD5];
NSString *encodedUrl = [theUrl stringByAddingPercentEscapesUsingEncoding: NSASCIIStringEncoding];

其中passMD5可能有一个领先的数字。但是,如果我在服务浏览器中为checkAuth方法输入了适当的值,它就会失效。

编辑

代码语言:javascript
复制
$value = urldecode($value);
if($value != "") {
if($value[0] != '[' && $value[0] != '{' && $value != "null" && $value != "false" && $value != "true") {
$hasAlpha = false;
//check to see if it is a number
$sl = strlen($value);
for ($i = 0; $i < $sl; $i++) {
    $char1 = ord($value[$i]);
    if($char1 >= 0x30 && $char1 <= 0x39) {
    //Then this is a number
    } else { //Else leave value as is */
    $hasAlpha = true;
    }
    }
    if (!$hasAlpha) $value = json_decode($value, true);
}
        else
        {
            $value = json_decode($value, true);
        }
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1847686

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档