Почему эмуляторы мобильных телефонов теряют переменные POST?

Я разрабатываю веб-приложение специально для мобильных телефонов, и я столкнулся с проблемой. На эмуляторе Blackberry я установил, все отлично работает. Но когда я запускаю эмуляторы Openwave или Nokia N60, я больше не могу войти в свое приложение. Когда я проверяю журналы, я обнаруживаю, что причина в том, что ВСЕ переменные $_POST пусты.

Я пробежал почти все, что мог придумать, это было бы проблемой, и я все еще застрял. Я перепробовал все три 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>

Может ли это быть? Где я могу найти документацию / спецификации, которые продемонстрировали бы это?

3 ответа

В более старом браузере Nokia Symbian 9 'servies' есть серьезная ошибка (IMO), из-за которой переменные POST, связанные с большинством элементов HTML-формы, не отправляются на сервер. Пользователи видят переключатели и флажки как отмеченные, но когда они отправляют форму, браузер просто не может отправить данные POST. Я наблюдал ту же проблему, о которой вы сообщаете в N70, N71 и некоторых других старых телефонах Symbian 9 в общем тираже.

Старые телефоны Nokia Symbian 9 имеют два браузера: "сервисы" и "Интернет". Основное отличие заключается в том, что браузер "сервисов" предназначен для просмотра WAP, поскольку браузер на основе Webkit не включает никакой поддержки WML, который в то время был доминирующим языком разметки для мобильных устройств. Браузер "сервисов" был установлен как браузер по умолчанию во многих телефонах - не уверен, когда он изменился, но когда-то около выпуска N95. Нет проблем, когда пользователи используют браузер "Mini Map" на основе Webkit, но браузер "services" теряет данные POST.

Если пользователи получат доступ к вашей странице по ссылке в сообщении SMS или MMS, они будут использовать браузер телефона по умолчанию. Я не знаю ни одного способа исправить ошибку и очень мало информации на форуме Nokia или других сайтах. На своих производственных площадках я старался отстраняться от форм POST, где это возможно.

Покажите нам код для кнопки ввода (и общий вид). Я думаю, у меня была эта проблема раньше, и кнопка не была типа "отправить" (или какая-то другая очень и очень глупая ошибка, как эта).

Меняется ли поведение при публикации на странице, а не в корне сайта?

Другие вопросы по тегам