2011-08-10 88 views
1

这一个让我难住。我有两种Windows安装的PHP:32位操作系统上的32位和64位操作系统上的64位。两者都使用Apache 2.2(本地架构),并且都将php作为模块加载。如果使用手机浏览器,可执行文件的不同输出

然后我有一个控制台应用程序(.Net),它输出一行与东西在其中。通常,它将输出一个单词,如E_INVALID_CREDENTIALS或S_SUCCESS(自定义代码),后跟冒号和随机数据。我在PHP中使用$e = exec("command")并解析输出$e。不过,我已经在exec声明之后用die($e)进行了测试,如果我使用手机浏览器(iPod touch或Android 2.2),exec的输出只是第一个词和冒号,但如果我使用桌面浏览器(Chrome或Firefox),输出是由控制台应用程序打印的完整行。

我已经手动运行命令,甚至打印命令PHP正在执行,我看到没有理由截断输出。

任何人都可以帮我解决这个问题吗?

+1

我认为它可能有更多的关于页面格式比与PHP代码。 – datasage

+0

不是。我做了一个模($ e),纯明文输出。仍然没有区别。另外,我没有为桌面浏览器提供不同格式的东西。相同的页面,相同的样式,相同的一切。 – Soumya

回答

0

最后。经过几天的调试,我意识到我发送给控制台应用程序的用户名已被移动浏览器大写。虽然大写的用户名并没有发生错误,但它以其他神秘的方式失败了。我应该早一点发现它。无论哪种方式,这是控制台应用程序中的一个深奥的错误,并且与PHP无关。我仍然责怪手机资本化我的用户名...

1

如果你没有检查用户的代理和其他客户端信息,PHP是服务器端,因此它没有任何连接。

如果你真正得到不同的信息,确保您的浏览器均使用同一设置(启用了Cookie,例如)

但是这一切都取决于你的依赖从代码中端和代码作为一个整体。

也许就有了一切可见的,但所以会出现不同的不同的浏览器,你刚才错了CSS或东西(?)

+0

虽然如此。我已启用所有Cookie和内容。我检查了cookie的价值和存在,它们看起来完全一样。事实上,exec甚至运行相同的命令,如通过回显命令字符串的内容所测试的那样。而且我不会为桌面浏览器提供任何不同的服务。 – Soumya

相关问题