Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » скрипт для WAP-сайта

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2

Открыть новую тему     Написать ответ в эту тему

pom

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пытаюсь переделать обычный сайт в WAP
 
Сервер IIS, эмулятор WAP: Klondyke
 
В результате сервер нормально показывает *.wml страницы, но при запуске скрипта на C (*.exe) выдает ошибку  
 
HTTP error 500 Internal server error
 
Скрипт запрограммирован выдавать пустой документ вида
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML .1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card id="Test" title="Test">
<p>aaa</p>
</card>
</wml>
 
Этот WAP вообще умеет к exe-скриптам обращаться, или, может, в сервере надо что настроить?
 
 
 
Добавлено
... точнее, это в сервере Apache происходит error 500, а IIS говорит Error 502: Bad Gaetway

Всего записей: 13 | Зарегистр. 14-08-2003 | Отправлено: 01:40 15-08-2003
dmka



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Этот WAP вообще умеет к exe-скриптам обращаться, или, может, в сервере надо что настроить?  

 
должен уметь, это http обыкновенный. Желательно правильный content-type отдавать, многие клиенты к этому чувствительны.
 

Цитата:
точнее, это в сервере Apache происходит error 500, а IIS говорит Error 502: Bad Gaetway

 
У тебя часом клиент не пытается работать через какой-то левый прокси? Возьми winwap -простая и довольно удобная штука.

Всего записей: 956 | Зарегистр. 23-04-2003 | Отправлено: 16:16 15-08-2003
pom

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Попробовал winwap - действительно, он более подробно сообщает, что происходит.
 
Точно, WAP умеет вызывать exe-скрипт. Уже полегчало
 
Обнаружил такую штуку - если я выдаю через cout << текст XML (всё хозяйство, начинающееся с <?xml version="1.0"?> ), то ничего не работает (ошибка 502 и пр.):
 
Нельзя получить адрес URL http://192.168.254.243/c/mw.exe?y=word
Ошибка  HTTP : 502 (Gateway Error)
<head><title>Error in CGI Application</title></head><body><h1>CGI Error</h1>The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are:<p><p><pre><%Response.ContentType="text/vnd.wap.wml"%><?xml version="1.0"?><!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"><wml><card id="Test" title="Test"><p>aaaaa</p></card></wml></pre>
 
Однако, стоит выдавать обычный HTML-документ, как WAP browser его начинает показывать, хотя не совсем так и с сообщением, что текст не оптимизирован для мобильника.
 
Что должен выдавать скрипт: HTML или XML?
Похоже, мой IIS умеет выдавать только HTML, а WAP-browser пытается его на ходу переделать в XML...

Всего записей: 13 | Зарегистр. 14-08-2003 | Отправлено: 23:43 15-08-2003
dmka



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Что должен выдавать скрипт: HTML или XML?  

 
xml естественно. Вот пример реально работающей странички:
 
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<template>
<do type="option" name="home" label="Home">
<go href="index.wml"/>
</do>
<do type="prev"><prev/>
</do>
</template>
 
<card id="mainpage" title="DMKa Links" newcontext="true">
<p>
<anchor title="MyLink">MyLink
<go href="http://wap.mylink.com">
</go>
</anchor>  
<br/>
</p>
</card>
 
</wml>
 

Цитата:
Похоже, мой IIS умеет выдавать только HTML,

 
IIS умеет выдавать что угодно
 

Цитата:
а WAP-browser пытается его на ходу переделать в XML...

 

 
Вообще, если ты используешь exe-скрипт, ты сам отвечаешь за правильность вывода.
200 Ok вернул? Content-type вернул? Правильное количество cr+lf вывел? Только после этого можешь выдавать собственно сам xml.

Всего записей: 956 | Зарегистр. 23-04-2003 | Отправлено: 21:59 16-08-2003
pom

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
м-да.
Надо разобраться

Всего записей: 13 | Зарегистр. 14-08-2003 | Отправлено: 10:00 24-08-2003
pom

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
... а что есть 200 Ok, которое надо возвращать?
И Content-type? Куда его всовывать?
 
Я грешным делом из скрипта просто вывожу cout-ом подряд все строки из приведенного примера.
 
На что он мне говорит:
Not wml content :
 
[Content Preview]
<card id="mainpage" title="DMKa Links" newcontext="true"> <p> <a title="MyLink">MyLink <go href="c/m.exe"> </go> </a> <br/> </p> </card> </wml>
[End]
 
Тогда я добавил в начале пустых строк. Стало лучше:
Not wml content :
 
[Content Preview]
<?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <template> <do type="option" name="home" label="Home"> <go href="index.wml"></go> </do> <do type="prev"><prev/> </do> </template> <card id="mainpage" title="DMKa Links" newcontext="true"> <p> <a title="MyLink">MyLink <go href="c/m.exe"> </go> </a> <br/> </p> </card> </wml>
[End]
 
Неужели ему действительно пустые строки нужны? С чего бы это... :)

Всего записей: 13 | Зарегистр. 14-08-2003 | Отправлено: 01:10 25-08-2003
pom

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В общем, получилось следующее:  
WML у меня как не выводился, так и не выводится.
Кто его знает, почему.
 
Но я поставил конвертер HTML в WAP
http://www.softandco.com/Internet/Browsers/Proxy/Filters/a/5685/Mobile%20Converter.html
и теперь скрипт выдает обычный HTML, и он прекрасно показывается на сотовом телефоне.
 
Остался вопрос: WAP сайты обычно называются типа http://wap.yourname.ru
 
Провайдер обещал прописать у себя, чтобы этот путь приводил на мой сервер.
А что нужно сделать на сервере, чтобы он на это выдавал именно WAP страницу?
Создать там файл Default.wml ?

Всего записей: 13 | Зарегистр. 14-08-2003 | Отправлено: 20:11 29-08-2003
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pom

Цитата:
А что нужно сделать на сервере, чтобы он на это выдавал именно WAP страницу?  
Создать там файл Default.wml ?

Расширение файла может быть любым, главное, чтобы заголовки правильно выдавались о content-type. И в настройках сервера указано, какой файл он выдает по умолчанию.
обычно index.htm или index.html... или index.php (вот в нем уже можно и генерить заголовки). Так что зависит от настройки сервера.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:00 29-08-2003
pom

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Дело в том, что у меня на сервере уже работает обычный HTML-сайт.
В настройках указан файл Default.htm, содержащий текст и графику.
 
Для WAP-сайта я сделал упрощенный файл заглавной страницы (default.wml), но при запросе
http://wap.yourname.ru
сервер выдает старый Default.htm, который HTML-to-WAP конвертер перелопачивает в гигантскую WML-страницу.
 
В то же время запрос  
http://www.yourname.ru/default.wml
работает совершенно нормально
 
Я думал для простоты обойтись одним скриптом для выдачи HTML и WML контента, а также одним сайтом.
 
Интересно, может IIS как-то понять, что браузер требует WML-контент, и выдавать именно WAP-страницу в качестве заглавной?
 
Или не геморроиться и оставить 'кривую' заглавную ссылку http://www.yourname.ru/default.wml ?

Всего записей: 13 | Зарегистр. 14-08-2003 | Отправлено: 21:25 29-08-2003
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pom
сделать дефолтовой страницей скрипт, который смотрит user-agent..
Например index.php, который смотрит $_SERVER["HTTP_USER_AGENT"] (или default.asp) и уже в зависимости от него выдает нужный заголовок и форвардит на нужную начальную страницу.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:47 29-08-2003
pom

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Слушай, не в службу а в дружбу - а как этот скрипт выглядит?
 
В случае, когда HTML-запрос должен стартовать с Default.htm, а WAP-запрос - с Default.wap
 
Я с ASP никогда не работал, он вроде в IIS где-то упоминается...
 
Это будет что-то вроде
 
<!--#if expr="$HTTP_USER_AGENT=/Mozilla\/4/ || $HTTP_USER_AGENT=/Mozilla\/5/" -->
<!--#include virtual="default.htm"-->
<!--#else -->
<!--#include virtual="default.wap"-->
<!--#endif -->
 
?

Всего записей: 13 | Зарегистр. 14-08-2003 | Отправлено: 22:27 29-08-2003
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pom

Цитата:
<!--#if expr="$HTTP_USER_AGENT=/Mozilla\/4/ || $HTTP_USER_AGENT=/Mozilla\/5/" -->  
<!--#include virtual="default.htm"-->  
<!--#else -->  
<!--#include virtual="default.wap"-->  
<!--#endif -->  

Это SSI.. использовать его нехорошо, по той причине, что сначала сервер выдает стандратный заголовок для того типа файла, в котором описываются эти инструкции.
ASP я пока изучаю.. понемногу..

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 22:43 29-08-2003
pom

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Окей, будем постепенно изучать :)

Всего записей: 13 | Зарегистр. 14-08-2003 | Отправлено: 23:05 29-08-2003
pom

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кажется, я понял.
 
Под IIS создается два сайта - один HTML, другой WML.
Они могут указывать на одну стартовую директорию, а вот Default страницы у них разные.
Провайдер прописывает ссылку для адреса www.yourname.ru на HTML сайт, а запросы wap.yourname.ru - на WML сайт.
 
Остаётся это попробовать :)

Всего записей: 13 | Зарегистр. 14-08-2003 | Отправлено: 01:58 31-08-2003
Mamay



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
И попробуй установить вот эти хедеры:

Цитата:
 
header( "Content-Type: text/vnd.wap.wml; charset=iso-8859-1");
header( "Expires: Tue, 01 Jan 1980 1:00 GMT");
 

 
Может помочь!

----------
Даже самый дурацкий замысел можно выполнить мастерски

Всего записей: 1352 | Зарегистр. 03-09-2002 | Отправлено: 23:53 31-08-2003
pom

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
... так у меня все исходные файлы для WAP-Сайта получаются в формате HTML
Их фильтр 'на лету' преобразует в wml
 
Так что куда же эти хедеры устанавливать?
Это случайно не в свойствах сайта под IIS, раздел 'HTTP headers' ?
Честно говоря, я туда еще не ходил.

Всего записей: 13 | Зарегистр. 14-08-2003 | Отправлено: 00:02 02-09-2003
Mamay



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ну вроде этого

Цитата:
 
<meta http-equiv="Content-Type" content="text/vnd.wap.wml; charset=iso-8859-1"/>
 

 
а начем ты пишешь свой фильтр?

----------
Даже самый дурацкий замысел можно выполнить мастерски

Всего записей: 1352 | Зарегистр. 03-09-2002 | Отправлено: 16:05 02-09-2003 | Исправлено: Mamay, 16:07 02-09-2003
piotrek



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
2 dmka

Цитата:
200 Ok вернул? Content-type вернул? Правильное количество cr+lf вывел? Только после этого можешь выдавать собственно сам xml.

 
Можно поподробнее насчёт cr+lf ? Сколько их надо?
Я выдаю в начале своей страницы на php
 
header("Content-type: text/vnd.wap.wml");
echo '<?xml version="1.0"?>';
 
получаю Ivalid response на телефонах, хотя всё OK в опере и в эмуляторах.
Где у меня косяк?

Всего записей: 2 | Зарегистр. 17-01-2004 | Отправлено: 11:26 17-01-2004
pom

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я долго геморроился с этими CR-LF, а потом просто подключил эмулятор WAP, который на лету преобразует HTML-страницы в WAP, типа  
http://www.softandco.com/Internet/Browsers/Proxy/Filters/a/5685/Mobile%20Converter.html
но не помню уже точно, он ли это, или какой-то другой
 
и все работает. Только в каждом запросе я передаю параметр, что это именно запрос с WAP-устройства, чтобы скрипт выдавал усеченную страницу.
Единственно, демо-версия эмулятора  требует перезагрузки каждые 12 часов - но это небольшая проблема.

Всего записей: 13 | Зарегистр. 14-08-2003 | Отправлено: 01:43 18-01-2004
Andrey_Wlodimirovich



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ а вот такой вопрос, если телефону разница какая сылка будет на java  приложение на вап сайт или другой?...

Всего записей: 1773 | Зарегистр. 15-11-2003 | Отправлено: 00:41 19-01-2004
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2

Компьютерный форум Ru.Board » Интернет » Web-программирование » скрипт для WAP-сайта


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru