webForumDet fria alternativet

Wap-koder?

12 svar · 618 visningar · startad av voigtann1

voigtann1Medlem sedan juni 20019 519 inlägg
#1

hur gör man egentligen en Wap sida. Är det bara ha en server och en url och sen skriva koder rakt och ner?

@ndersMedlem sedan juni 200032 969 inlägg
#2

Google är kung

jakeMedlem sedan sep. 2001649 inlägg
#3

ja, och spara som .wml, webhotellet måste ha stöd för att visa wapsidor men det har de flesta.

voigtann1Medlem sedan juni 20019 519 inlägg
#4

jag har servern hemma... hur fixar jag sånt då? IIS. vad ska den heta? index.wml eller?

jarvkloMedlem sedan juli 20013 378 inlägg
#5

index.wml är en bra start... Men IIS klarar inte att "ge rätt sida till rätt läsare" automatiskt, utan har du ordningen "index.html index.wml" inställd för "Documents" i "Internet Information Services" så kommer den *alltid* att slanga ut html-sidan om bägge sidorna finns...

Vill du att nallefoner skall "få WAP-sidan" på din servers grundadress (t.ex. http://localhost) samtidigt som "vanliga" webbläsare skall få en "vanlig" sida , är det nog enklast att köra med en default.asp typ:

<% @Language="VBScript" EnableSessionState=False %>
<% aStr=cStr(Request.Servervariables("HTTP_ACCEPT"))
	UCase(aStr)
	if Instr(1,CStr(aStr),"vnd.wap.wml",1)>0 Then
		response.redirect("/index.wml")
	End If
%>
<!-- #include file="index.html" -->

En annan vanlig setup är att lägga alla WAP-sidor i en subdomän (wap.example.se) eller en undermapp där du inte lägger några html-sidor.

voigtann1Medlem sedan juni 20019 519 inlägg
#6

provade på https://www.wapemulator.com med localhost/wap/ tex... fast no result :(

jarvkloMedlem sedan juli 20013 378 inlägg
#7

Ehm - jag antar att du inte skrev http://localhost/wap/ som adress på wapemulator.com och att problemet alltså är något annat än att bara få den tjänsten att hitta till din server ;)

... och att du vet att "minsta fel på WML-koden så visas ingenting" gäller (dvs du får ett felmeddelande om att sidan inte kan nås om du råkat missa en tagg eller fått in ett felaktigt tecken i koden (typexempel på ett vanligt nybörjarfel är att man glatt anger att sidan är kodad i UTF-8 eftersom det står så i exemplen men inte tänker på att de åäö man sedan skriver inte är åäö i UTF8 om man inte kör just UTF8 i sin editor - vilket ger "felaktiga tecken" i koden och ett helt opedagogiskt felmeddelande som säger att sidan inte finns eller att man har "serverfel 500" nånstans eller nå't sådant ;) ) )

Och du har alltså kopplat MIME-typen "text/vnd.wap.wml" till filextensionen .wml i din IIS... Och startat om maskinen efter det...

Vad händer om du kör direkt till http://localhost/wap/index.wml med MSIE - om du gjort rätt skall du få en "villdusparapådisk"-dialog som du kan spara det som kommer farande med och sedan kolla om det verkligen var din WML-fil...

Vad händer om du kör direkt till http://localhost/wap/index.wml med t.ex. Opera ?

voigtann1Medlem sedan juni 20019 519 inlägg
#8

jag får inte det att fungera med http://localhost/wap/ eller http://voigtan/wap/

om jag kör IE så får jag dokumentet ser ut som en XML dokument.

TengbladMedlem sedan dec. 19998 277 inlägg
#9

Bra start för att göra wapsidor http://www.w3schools.com/wap/default.asp

LeonLMedlem sedan dec. 20025 871 inlägg
#10

Jag har en annan fråga... måste man ha filänelsen .wml? Kan man inte använda .asp eller .php men ange att det är ett wml-dokument i DOC TYPE?

jarvkloMedlem sedan juli 20013 378 inlägg
#11

Visst kan du det - men du måste se till att ändra "default-MIME-typen" som sidan förses med (brukar vara text/html i både ASP och PHP om jag inte kommer ihåg fel...)

Det du får göra är alltså att lägga till följande funktionsanrop "högt upp" i din ASP- eller PHP-kod:

ASP:

<% Response.ContentType = "text/vnd.wap.wml" %>

PHP:

<?php header("Content-type: text/vnd.wap.wml"); ?>

Sedan måste du naturligtvis också ha en WML-doctype i dokumentet... Den kommer du aldrig undan ;)

DwarfenMedlem sedan jan. 2002241 inlägg
#12

Jarvklo:
Har läst tråden...men jag förstår fortfarande inte hur man gör för att index.php (som är default startfilen) ska känna av vilken läsare man ansluter med, wap eller webläsare.
Hade varit lite najs att få upp en sida, men olika pga läsaren?
Förstår du?

jarvkloMedlem sedan juli 20013 378 inlägg
#13

Hmm... Jag förtår precis - och lösningen finns i mitt tidigare inlägg härovan: http://www.webforum.nu/showthread.php?s=&postid=737833#post737833

Här är den koden snabbt översatt till PHP.

<?php
  $mimetyp=$_SERVER['HTTP_ACCEPT'];
  if (strstr($mimetyp,'vnd.wap.wml')) {
    // En WML-sida efterfrågas
    // gör redirect till index.wml
    header("Location: [url]http://[/url]" . $_SERVER['HTTP_HOST']. "/index.wml");
    exit;
  }
  else {
    // gör redirect till index.html (eller inkludera den direkt om du hellre vill)
    header("Location: [url]http://[/url]" . $_SERVER['HTTP_HOST']. "/index.html");
  }
  
?>

Tricket är att du kan kolla i HTTP-headern ACCEPT efter vilken typ av dokument som webb/wap-läsaren klarar av, och om du ser att den klarar WAP så kan du skicka på den en WML-sida ;)

Detta är lite "brute force" eftersom det inte tar hänsyn till eventuella viktningar som finns inställda i ACCEPT - men det verkar funka i praktiken iallafall - har kört med detta i några år nu utan klagomål på en av mina webbplatser ;)

261 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
133 ms — hämta forumlista (db)
125 ms — hämta statistik (db)
134 ms — hämta tråd, inlägg och bilagor (db)