0

我正在开发一个专门用于手机的网络应用程序,我遇到了一个问题。在我安装的黑莓模拟器上,一切正常。但是当我运行我的 Openwave 或诺基亚 N60 模拟器时,我无法再登录我的应用程序。当我检查日志时,我发现原因是所有 $_POST 变量都是空的。

我已经经历了几乎所有我能想到的问题,但我仍然陷入困境。我已经尝试了 Wikipedia 列出的所有三种 DOCTYPE,如果仅此而已,我已经尝试发送各种不同的标头,但我只是被难住了。

我的最后一个想法是,也许我的表单代码本身是错误的?我在我的表格中附上了一个表格,我看到的所有示例都在表格中附上了一个段落。

即在我看到的例子中:

<form>
    <p>
        ... stuff ...
    </p>
</form>

我有:

<form action="/" method="POST" class="formic">
    <table class="mobile-form">
        <tr>
            <td colspan="2" class="label required">Email address</td>
        </tr>
        <tr>
            <td colspan="2" class="data"><input type="text" name="email" class="text" /></td>
        </tr>
        <tr>
            <td colspan="2" class="label required">Password</td>
        </tr>
        <tr>
            <td><img src="/images/exclamation.png" class="error_icon" value="/images/exclamation.png" /></td>
            <td class="data"><input type="password" name="password" class="text" /></td>
        </tr>
        <tr>
            <td colspan="2" class="data field-error">You must enter a password.</td>
        </tr>
        <tr>
            <td colspan="2" class="label required">Sign in to:</td>
        </tr>
        <tr>
            <td colspan="2" class="data">
                <select name="aspect">
                    <option value="web">Web interface</option>
                    <option selected="selected" value="mobile">Mobile interface</option>
                </select>
            </td>
        </tr>
        <tr>
            <td colspan="2">
                <input type="hidden" name="saved_aspect" value="0" />
                <label>
                    <input type="checkbox" name="saved_aspect" checked="checked" value="1" />
                    Save interface choice on this computer.
                </label>
            </td>
        </tr>
        <tr>
            <td colspan="2" class="submit"><input type="submit" name="" class="submit" value="Log in" /></td>
        </tr>
    </table>
</form>

会是这样吗?我在哪里可以找到可以证明这一点的文档/规范?

4

3 回答 3

3

旧的诺基亚 Symbian 9 '服务' 浏览器有一个主要 (IMO) 错误,导致与大多数 HTML 表单元素相关的 POST 变量无法发送到服务器。用户看到单选按钮和复选框被选中,但是当他们提交表单时,浏览器根本无法发送 POST 数据。我在 N70、N71 和其他一些较旧的 Symbian 9 手机中观察到您报告的相同问题。

旧款诺基亚 Symbian 9 手机有两种浏览器:“服务”和“网络”。主要区别在于“服务”浏览器用于 WAP 浏览,因为基于 Webkit 的浏览器不包括对 WML 的任何支持,WML 是当时占主导地位的移动标记语言。“服务”浏览器在许多手机中被设置为默认浏览器——不确定何时更改,但在 N95 发布前后的某个时间。当用户使用基于 Webkit 的“迷你地图”浏览器时没有问题,但“服务”浏览器会丢失 POST 数据。

如果用户通过 SMS 或 MMS 消息中的链接访问您的页面,他们将使用手机默认浏览器。我不知道有什么方法可以修复这个错误,而且诺基亚论坛或其他网站上的信息也很少。在我的生产站点中,我试图尽可能避免使用 POST 表单。

于 2009-08-21T04:04:42.467 回答
1

向我们展示输入按钮(和一般形式)的代码。我想我以前遇到过这个问题,并且按钮不是“提交”类型(或其他一些非常非常愚蠢的错误)。

于 2009-08-21T03:18:58.173 回答
0

如果您发布到页面而不是站点的根目录,行为会改变吗?

于 2009-08-21T03:39:14.797 回答