• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

variable per PHP an wml-Datei übergeben

schlegel.berlin

New member
Hallo Leute,

nach längerer Zeit habe ich wieder einmal ein Frage.
Ich möchte bestimmte Variablen aus einer simplen txt-Datei per PHP an eine
wml-Datei übergeben, damit Besucher per WAP-fähigem Handy auf diese Variablen zugreifen können (nur lesen versteht sich).
Leider habe ich keine Idee wie ich das realisieren soll und googeln hat mich nicht wirklich schlauer gemacht.

Ich hab's mal mit folgendem Script versucht, allerdings ohne Erfolg.

PHP:
<? 
header("Content-type: text/vnd.wap.wml"); 
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); 
header("Last-Modified: " . gmdate("D, d M Y H:i:s"). " GMT"); 
header("Cache-Control: no-cache, must-revalidate"); 
header("Pragma: no-cache"); 
echo("<!DOCTYPE wml PUBLIC"-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">"); 
//---------------- text ------------------->
$rows_ge = file('variablen_liste.txt');
if (is_array ($rows))
{ 
foreach ($rows as $row)
{
$values_ge = explode ("|", $row); 
$variable_01 = stripslashes($values[0]);
$variable_02 = stripslashes($values[1]);
$variable_03 = stripslashes($values[2]);
$variable_04 = stripslashes($values[3]);
$variable_05 = stripslashes($values[4]);
}
}
?>
<?xml version='1.0'?>
<wml>
<card id="Seite1" title="Variablen-Liste"> 
<p>
<? echo $variable_01; ?></ br>
<? echo $variable_02; ?></ br>
<? echo $variable_03; ?></ br>
<? echo $variable_04; ?></ br>
<? echo $variable_05; ?></ br>
</p>
</card> 
</wml>

Wenn ich die wml-Datei wie folgt schreibe, wird sie auch ordentlich vom WAP-Browser gelesen. Aber dan fehlen eben die Variablen.

PHP:
<?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="Seite1" title="Variablen-Liste"> 
<p>Variable 1: <br/></p>
<p>Variable 2: <br/></p>
<p>Variable 2: <br/></p>
</card> 
</wml>

Nun hoffe ich, dass es unter Euch jemanden mit WAP-Erfahrung gibt, der mir den "Schleier" der Ahnungslosigkeit vor den Augen wegzieht ...

Vielen Dank schon mal im Voraus für Eure Hilfe!

Und, herzliche Grüße mit den Besten Wünschen für das Neue Jahr, neben Gesundheit, Glück und Erfolg, vor allem:

1. mindestens eine/n wirklich wahrhaftige/n Freundin/Freund
2. den Blick für das Wesentliche nicht zu verlieren
3. große innere Zufriedenheit
und
4. viel Lebensfreude
 
Äh - ich hab' gar keine Erfahrung mit WAP, ABER... du sendest die DocType VOR dem <?xml...> - das ist definitiv falsch.
Du solltest dir bei solchen Problemen immer das ansehen, was im Browser ankommt (also den Quelltext) und wenn du damit nicht weiterkommst auch das posten.
 
Äh - ich hab' gar keine Erfahrung mit WAP, ABER... du sendest die DocType VOR dem <?xml...> - das ist definitiv falsch.
Du solltest dir bei solchen Problemen immer das ansehen, was im Browser ankommt (also den Quelltext) und wenn du damit nicht weiterkommst auch das posten.

Danke für den (richtigen) Hinweis.
Hab's jetzt im Header wie folgt geändert:

PHP:
echo("<?xmlversion="1.0"?>"); 
echo("<!DOCTYPE wml PUBLIC"-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">");

Geht aber trotzdem (leider, seufz...) nicht!
 
Zuletzt bearbeitet:
Wo wird $rows definiert, bzw. mit was sinnvollem belegt?
Ansonsten solltest Du einfach mal den Quelltext anschauen, der im Browser ankommt. Soweit ich mich recht erinnern kann, hat z.B. der Opera extra einen WAP Modus.
 
Auch würde ich dir empfehlen, keine Shorttags zu verwenden - die interpretiert nicht jeder PHP-Interpreter.
 
Wo wird $rows definiert, bzw. mit was sinnvollem belegt?
Ansonsten solltest Du einfach mal den Quelltext anschauen, der im Browser ankommt. Soweit ich mich recht erinnern kann, hat z.B. der Opera extra einen WAP Modus.

-----------------------

$rows ist ein array das mit der for each schleife ausgelesen wird.

Die Variablen in der txt-Datei sind mit | voneinander getrennt.

Um es nochmals zu sagen: Das auslesen der Text-Datei funktioniert ja problemlos. Das Problem ist die Übergabe der Werte in die wml-Umgebung.

Letztlich muss ja ein Script entstehen, das als Dateiendung .wml hat und die gewünschten Variablen auf dem Handy ausgibt.

Resume: Ich bin noch keinen Schritt weiter und Opera hat mir leider auch nicht geholfen...
 
$rows ist ein array das mit der for each schleife ausgelesen wird.
Das war nicht die Frage. Die Frage war: Wie kommt das, was Du da mit der for each Schleife auslesen willst, überhaupt da rein.

Und dass Du mit Opera nicht weiterkommst, mag daran liegen, dass Du die falschen Schlüsse ziehst. Wenn der Browser Deine Variablen im Quelltexte nicht enthält, dann macht der das nicht, weil er gehässig ist, oder weil die Dateiendung blöd ist, sondern weil die Daten, die das Skript ausgeben sollte leer waren - was bei obigen Skript ziemlich offensichtlich ist.
 
Hinweis zur Bemerkung von Albu:
PHP:
//---------------- text ------------------->
$rows_ge = file('variablen_liste.txt');
if (is_array ($rows))
{ 
foreach ($rows as $row)
{
Wir wollen außerdem immer noch wissen, was im Browser jetzt wirklich ankommt - poste doch einfach mal den Quelltext, denn du im Browser ansehen kannst!

EDIT: Es gibt sicherlich auch Validatoren für .wml dateien.
 
Also, zunächst zum Hinweis von Albu. Du hattest natürlich recht. Beim Vereinfachen des Codeschnipsels zum Posten ist mir ein Fehler unterlaufen:

$rows_ge = file('variablen_liste.txt');
if (is_array ($rows))
{
foreach ($rows as $row)

Das _ge muss natürlich weg, damit der Inhalt der txt-Datei auch ausgelesen werden kann.
Sorry, war ein Flüchtigkeitsfehler, aber nicht der Grund, weshalb das Ganze nicht funktioniert, da dieser Code-Fehler in meinem Originalscript nicht vorhanden war...

Ich "Depp" hatte die Datei versehentlich als wml-Datei abgespeichert. Das konnte natürlich nicht funktionieren. Jetzt, als PHP Datei funktioniert alles bestens.
Dies allerdings ist insofern betrüblich, als dass ich Euch umsonst bemüht habe, was mir sehr leid tut.

Die nachstehende index.php habe ich jetzt auf den Server hochgeladen (natürlich in einen eigenen Ordner) und alles ist "dufte", wie wir in Berlin so sagen ...

Nochmals vielen Dank dafür, dass Ihr Euren Kopf zerbrochen habt
und bitte nicht sauer sein darüber, dass ich einfach nur nicht gleich richtig hingeschaut habe ....

Ich gelobe Besserung !

Code:
<? 
header("Content-Type: text/vnd.wap.wml"); 
header("Expires: now"); 
echo "<?xml version='1.0' encoding='iso-8859-1'?>"; 
echo "<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\" 
\"http://www.wapforum.org/DTD/wml_1.1.xml\">"; 

$rows = file('../txt_daten/variablen_liste.txt');
if (is_array ($rows))
{ 
foreach ($rows as $row)
{
$values = explode ("|", $row_ge); 

$text_01 = stripslashes($values_ge[0]);
$text_02 = stripslashes($values_ge[1]);
$text_03 = stripslashes($values_ge[2]);
$text_04 = stripslashes($values_ge[3]);

}
}
?> 
<wml> 
<card id="Menue" title="WAP-Seitentitel"> 
<p> 
<? 
echo $text_01."<br />".$text_02."<br />".$text_03."<br />".$text_04;
?> 
</p> 
</card> 
</wml>
 
Zurück
Oben