webForumDet fria alternativet

Problem med wapakod

Webbutveckling

3 svar · 214 visningar · startad av Dwarfen

Medlem sedan jan. 2002241 inlägg
Frågan#1

Förstår mig inte på detta problemet, ibland funkar koden, ibland inte.
Kör med följade

<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card title="Netx- För dig">
<p>
<anchor>Musik Sidan
<go href="wap/index.wml"/> 
</anchor>
</p>
<br/>
<p>

</card>
</wml>

Detta är ju en ganska simpel och enkel kod, men det är inte alltid den vill fungera på waptelefoner?
Har provat med flera olika versioner av telefoner (olika wapversioner) men det är bara på nyare den funkar varje gång, men då med felmedelande.
På äldre modeler visas den inte alls =(
Någon som orkar hjälpa mig?

Medlem sedan okt. 20023 030 inlägg
#2

Du har en <br/> utanför <p> (vilket jag har för mig att man inte får) samt att du har glömt avsluta en <p>. :)

Medlem sedan jan. 2002241 inlägg
#3

Ah, tackar tackar, ser vad du syftade på, nu funkar sidan.
Men när jag ändå har postat en tråd tänker jag uttnyttja den till fullo =)

Har även tänkt att hämta lite värden från en databas till wapsidan...
Borde det inte bli något sånt häringa då?

<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">

<wml>
<card title="Test för låtar...">
<p>
<anchor>Musik Sidan
<?php

	//Ställ in användarnamn och lösenord för databasen
	$username = 'xxx';
	$password = 'xxx';
	$dbName = 'xxx';
	mysql_connect('localhost', $username, $password) or die (mysql_error());
	mysql_select_db($dbName) or die (schyse());

$sql = "select namn, lankadress from latar";
$result = mysql_query($sql);
	if (mysql_num_rows($result) > 0) {
	while ($array = mysql_fetch_array($result)) {
echo "".$array['namn'] ."</B> ";
echo "".$array['lankadress'] ."</B> ";
?>
</p>
</anchor>
</card>
</wml>
Medlem sedan juli 20013 378 inlägg
#4

Jovisst, men du kan inte skriva in <?xml...?>-taggen i en .php-sida direkt sådär (eftersom <? ju tolkas av PHP som starten av ett PHP-kodat avsnitt).
Detta "problem" kan du komma förbi genom att ersätta den med t.ex.

<?php
header("Content-type: text/vnd.wap.wml");
echo '<?xml version="1.0" encoding="ISO-8859-1"?>';
?>

header()-satsen ställer in rätt "MIME-typ" för sidan och är nödvändig för att din wap-sida skall slinka igenom alla gateways och s**t på vägen till nallefonen på rätt sätt (om den sedan bara är rätt WML-kodad också förståss)

Dessutom:
Taggar med stora bokstäver accepteras ej - och du kan inte lägga upp dubbla </b> sådär utan att ha med ett par inledande <b> som"matchar" dessa "nivåmässigt"...
Dessutom kan du inte låta <p> och <anchor> "hoppa bock" sådär... <p><anchor>....</p></anchor> som du kör med är tvärfel i WML... - men det visste du säkert redan ;)

När man skriver WML måste man vara noga med taggarna - annars får man bara felkoder från WAP-gateways och annat när man försöker titta på sidan "live" i en Nallefon.

257 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)