PHP script funktioniert nich :(

DooH

Grünschnabel
Ich hab grad angefangen n bisschen PHP zu lernen (ich wette ich brauch noch öfter eure Hilfe) ... Ich arbeite mit dem Buch "PHP der leichte Einstieg" ... nichts desto trotz hab ich ein Script aus dem Buch übernommen (Währungsrechner) und das klappt nich, IE spuckt die Fehlermeldung:

Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in c:\dokumente und einstellungen\tkirsten\desktop\phptest\3\euro2.php on line 25

aus ...

PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
	<title>Währungsrechner</title>
</head>

<body>
<?php

if ($betrag) {
$rate[DM]       =0.51;
$rate[Franc]    =0.15245;
$rate[Peseten]  =0.006010;
$rate[Euro]     =1;
$rate1[DM]      =1/$rate[DM];
$rate1[Franc]   =1/$rate[Franc];
$rate1[Peseten] =1/$rate[Peseten];
$rate1[Euro]    =1;
$ergebnis=$rate[$geld] * $betrag * $rate1[$geld1];
echo "<br>$betrag $geld sind $ergebnis $geld1<br>";
}

echo "<p><h3>Währungs-Umrechner!</h3>";
echo "<form action="euro2.php" method="post">Ausgangswährung<p>";
echo "<select size=1 name=geld>";
echo "<option=";
if ($geld=="DM"){echo " selected ";}
echo ">DM";
echo "<option=";
if ($geld=="Franc"){echo " selected ";}
echo ">Franc";
echo "<option=";
if ($geld=="Peseten"){echo " selected ";}
echo ">Peseten";
echo "<option=";
if ($geld=="Euro"){echo " selected ";}
echo ">Euro";
echo "</select><p>";

echo "Zielwährung<p>";
echo "<select size=1 name=geld1>";
echo "<option=";
if ($geld1=="DM"){echo " selected ";}
echo ">DM";
echo "<option=";
if ($geld1=="Franc"){echo " selected ";}
echo ">Franc";
echo "<option=";
if ($geld1=="Peseten"){echo " selected ";}
echo ">Peseten";
echo "<option=";
if ($geld1=="Euro"){echo " selected ";}
echo ">Euro";
echo "</select><p>";
echo "Betrag <input type=text name=betrag value=$betrag>";
echo "<input type=submit name="submit" value="berechnen"></form>";
?>
</body>
</html>

Entweder bin ich zu blöd dafür oder da is ne falsche Vorgabe im Buch ...

es scheint an folgender Zeile zu liegen:

PHP:
echo "<form action="euro2.php" method="post">Ausgangswährung<p>";
 
Zuletzt bearbeitet:
wenn du ein
echo
mit " anfängst dann musst du innerhalb des echos vor die " ein \ setzen.

das ganze sieht dann so aus

PHP:
echo "<form action=\"euro2.php\" method=\"post\">Ausgangswährung<p>";
 
echo "<form action="euro2.php" method="post">Ausgangswährung<p>";

Schau mal wie deine Zeichenkette aussieht:

echo "<form action=" <- hier wird sie beendet
euro2.php ist somit nicht mehr in der Zeichenkette.

usw

Wenn du innerhalb einer Zeichenkette Anführungszeichen ausgeben willst ohne das diese interpretiert werden so müssen sie terminiert (<- arnie lässt grüssen) werden.
Dies geschieht durch \ Backslash.

sprich:
echo "<form action=\"euro2.php\" method=\"post\">Ausgangswährung<p>";

Die Zweite möglichkeit ist du setzt deine Zeichenkette in einzelne '. Diese sorgen dafür das Anführungszeichen nicht interpretiert werden. Dafür verliert mann die möglichkeit Variablen in der Zeichenkette zu interpretieren.

mit dieser möglichkeit sieht das dann so aus:

echo '<from action="euro2.php" method="post">Ausgangswährung<p>';
 
Zeile 25 eben ;)
PHP:
echo "<form action="euro2.php" method="post">Ausgangswährung<p>";

du musst den " die du wirklich als " ausgeben willst ein \ voranstellen, da der Parser sonst den string:

echo "<form action=" <---hier als beendet ansieht und auf das abschließende Semikolon wartet.

\" wird als Stringinhalt interpretiert
" als Steuerzeichen

//edit: Jaja, ich war zu langsam :p
 
PHP:
if ($betrag) {
   $rate[DM]       =0.51;
   $rate[Franc]    =0.15245;
   $rate[Peseten]  =0.006010;
   $rate[Euro]     =1;
   $rate1[DM]      =1/$rate[DM];
   $rate1[Franc]   =1/$rate[Franc];
   $rate1[Peseten] =1/$rate[Peseten];
   $rate1[Euro]    =1;
   $ergebnis=$rate[$geld] * $betrag * $rate1[$geld1];
   echo "<br>$betrag $geld sind $ergebnis $geld1<br>";
}

sieht einer von euch wo die Variable $rate[$geld] , $rate[$geld1] und $geld belegt wird?
also ich nicht *G*
irrgend was ist da aber nicht sonderlich ehh richtig *G*
echo "<br>$betrag $geld sind $ergebnis $geld1<br>";
wie soll das funktionieren wenn $geld,$geld1 in einem Array sein soll?
 
er hatte ein problem, und das wurde gelöst.
alles andre ist mir ehrlich gesagt egal ;)
sollte er damit ein problem haben wird er schon wieder antänzeln

mfg
 
Zurück