0

私は携帯電話専用のWebアプリを開発していますが、問題が発生しました。私がインストールしたBlackberryエミュレーターでは、すべてが正常に機能します。しかし、OpenwaveまたはNokia N60エミュレーターを実行すると、アプリにログインできなくなります。ログを確認すると、その理由はすべての$_POST変数が空であることがわかります。

私はそれが問題になると思うことができるほぼすべてを実行しました、そして私はまだ立ち往生しています。ウィキペディアにリストされている3つの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

古い Nokia Symbian 9 'servies' ブラウザには、ほとんどの HTML フォーム要素に関連付けられた POST 変数がサーバーに送信されないという重大な (IMO) バグがあります。ユーザーには、ラジオ ボタンとチェック ボックスがオンになっているように見えますが、フォームを送信すると、ブラウザーは単に POST データの送信に失敗します。あなたが報告しているのと同じ問題が、N70、N71、および一般に流通しているその他の古い Symbian 9 ハンドセットで確認されています。

古い Nokia Symbian 9 ハンドセットには、「サービス」と「ウェブ」の 2 つのブラウザがあります。主な違いは、「サービス」ブラウザーが WAP ブラウジング用であることです。これは、Webkit ベースのブラウザーには、当時の主要なモバイル マークアップ言語であった WML のサポートが含まれていないためです。多くのハンドセットでは、「サービス」ブラウザがデフォルトのブラウザとして設定されていました。いつ変更されたかは不明ですが、N95 のリリース前後に変更されました。ユーザーが Webkit ベースの「ミニ マップ」ブラウザを使用する場合は問題ありませんが、「サービス」ブラウザでは POST データが失われます。

ユーザーが SMS または MMS メッセージのリンクを介してページにアクセスする場合、ハンドセットのデフォルト ブラウザーを使用します。私はバグを修正する方法を認識しておらず、Forum Nokia や他のサイトにはほとんど情報がありません。私のプロダクション サイトでは、可能な限り POST フォームを使用しないようにしています。

于 2009-08-21T04:04:42.467 に答える
1

入力ボタン (および一般的なフォーム) のコードを示してください。私は以前にこの問題を抱えていたと思いますが、ボタンは「送信」タイプではありませんでした(または、そのような非常に愚かな間違いです)。

于 2009-08-21T03:18:58.173 に答える
0

サイトのルートではなくページに投稿すると、動作は変わりますか?

于 2009-08-21T03:39:14.797 に答える