Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Währungsumrechner [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Währungsumrechner


 
Jacky
22-02-2004, 09:24 
 
Ich habe ein Währungsumrechner aus einem PHP Buch
programmiert, aber das Script läuft nicht!

Weiß jemand vielleicht was der Fehler sein könnte?

Das ist das Script



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

<html>
<head>
<title>Währungsumrechner</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="berechnung2.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>



Danke schon mal im Vorraus.

 
nomidi
22-02-2004, 10:19 
 
Und wie lauten die fehlermeldungen ?

also auf anhieb sehe ich ersteinmal 2 fehler der form tag muss ausserhalb von php , oder mit echo ausgeben und rate1[Euro]=1; hat kein $ zeichen

 
MelloPie
22-02-2004, 10:40 
 
Ausserdem scheint Dein Buch ein bissi älter zu sein...
Neben den bemerkten Fehlern, die eigentlich in Fehlermeldungen enden sollten gehtDein Script von register globals = on aus...

 
Jacky
22-02-2004, 13:12 
 
Die Fehlermeldung ist:

Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in C:\FoxServ\www\Umrechner.php on line 25

 
Jacky
22-02-2004, 13:15 
 
Das Buch ist die Auflage von 2003.
Ich habe schon auf der Homepage die Fehlerverbesserungen angeschaut
und das Script gedownloaded aber das funktioniert auch nicht.

 
jochenj
22-02-2004, 13:19 
 
zeile 25:

echo "<form action="berechnung2.php" method=post>Ausgangswährung<p>";

ersetze da bitte mit echo "<form action=\"berechnung2.php\" method=\"post\">Ausgangswährung<p>";

dann dürfte zumindest diese fehler weg sein

 
Jacky
22-02-2004, 13:32 
 
Jetzt geht das Script, aber berechnung.php gibt nur
sind
aus.



<?
echo "<br>$betrag $geld sind $ergebnis $geld1<br>";
?>



Gibt es die möglichkeit das im Umrechner auszugeben,
dass nicht auf berechnung.php weitergeleitet wird.

 
jochenj
22-02-2004, 13:46 
 
Sorry, aber meiner meinung nach ist diese script noch sehr verbesseungswürdig.

du hast ein formular, in dem du werte einstellst. per "submit" gibst du die werte weiter um sie zu verarbeiten. dies kannst du auch mit auf sich selbst verweisende scripte machen (bedeutet: das script ruft sich selbst wieder auf; der Befehl > $_SERVER['PHP_SELF'] < ist hier dein freund).

wenn du diese methode anwendest ist eine if bzz. switch anweisung nicht schlecht.

beispiel

swicht ($_GET['action'])
{
case 'berechnen': berechnung ausführen;
echo"ergebnis";
break;
default: formular anzeigen (echo "<form action=\" ".$_SERVER['PHP_SELF']."?action=berechnen\"
.....



hoffe konnt dir einen kleinen einblick geben

 
Jacky
22-02-2004, 14:00 
 
Jetzt kommt wieder Parse error

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\FoxServ\www\Umrechner.php on line 25



<?

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=\"".$_SERVER['PHP_SELF']."? 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'>";
echo "</form>"

?>



Ich bin erst beim PHP lernen und das mit den Schleifen wieß ich nicht so wie ich es machen soll!

 
jochenj
22-02-2004, 14:17 
 
<?php
//wenn die Variable action nicht übergeben wurde, deklarieren
if (!isset($_GET['action']))
{
$_GET['action'] = 'default';
}
//abfragen, ob ein- oder ausgegebn werden soll
switch ($_GET['action'])
{
//die ausgabe
case 'anzeigen': echo $_POST['name'];
break;
// die eingabe
default: echo "<html>
<head>
</head>
<body>
<form action=\"".$_SERVER['PHP_SELF']."?action=anzeigen\" method=\"post\">Name<p>
<input type=\"text\" name=\"name\" size=\"25\">
<input type=\"submit\" name=\"submit\" value=\"name anzeigen\">
</form>
</body>
</html>";
break;
}

?>


so hier mal ein kleine beispielscript, müsste funktionieren, hab es gerade getestet.

du solltest dir auch immer mal den html-quelltext anschauen
was passiert hier?
1. aufruf:
abfragen ob die variable $_GET['action'] existiert -> nein: ein wert zuweisen
switchabfrage: welcher wert hat die variable $_GET['action']? (switch ist wie if)
entsprechenden code ausführen -> hier formular anzeigen
daten werden vom benutzer eingetragen. -> absenden an das gleiche script

2. aufruf:
$_GET['action'] sollte jetzt den wert anzeigen haben (bedingt durch action=\"".$_SERVER['PHP_SELF']."?action=anzeigen\" )
switchabfrage: welcher wert hat die variable $_GET['action']
-> ausgaeb des namens.

HTML muss noch entsprechen ausgebaut werden (hatte ich jetzt keine lust dazu)
script für deine bedürfnisse anpassen

ist die methode jetzt deutlicher?

 
Jacky
22-02-2004, 17:50 
 
Ja ich probiers mal.
Danke:rocks:

 
Jacky
22-02-2004, 18:31 
 
Ich habs probiert ein Teil klappt aber es gibt nichts aus.



<?php

//wenn die Variable action nicht übergeben wurde, deklarieren
if (!isset($_GET['action']))
{
$_GET['action'] = 'default';
}
//abfragen, ob ein- oder ausgegebn werden soll
switch ($_GET['action'])
{
//die ausgabe
case 'anzeigen': echo $_POST['name'];
break;
// die eingabe
default: echo "<html>
<head>
</head>
<body>
<form action=\"".$_SERVER['PHP_SELF']."?action=anzeigen\" method=\"post\"><h2>W&auml;hrungsumrechner</h2><p>
Anfangswährung<p>
<select size=1 name=geld>
<option
if($geld=='DM'){selected}
>DM
<option
if($geld=='Franc'){selected}
>Franc
<option
if($geld=='Peseten'){selected}
>Peseten
<option
if($geld=='Euro'){selected}
>Euro
</select><p>

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

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];
}

?>



Wie kann ich eigendlich den Quelltext so Farbig schreiben?

 
Wurzel
22-02-2004, 18:36 
 
Original geschrieben von Jacky
Wie kann ich eigendlich den Quelltext so Farbig schreiben? mit dem lustigen knöpfchen auf dem PHP stehen tut ;) oder mit den tags [ PHP] ... [/ PHP] ... ohne leerzeichen

 
derHund
22-02-2004, 18:38 
 
Wie kann ich eigendlich den Quelltext so Farbig schreiben?
entweder zitierst du jemanden, und schaust dir da an, wie ...
oder du nimmst die php-tags

[php ] dein code hier [/php ]

es wäre schön, wenn du es in deinen posts ändern würdest, danke.

 
Jacky
22-02-2004, 18:43 
 
Danke mit dem Färben.

Weiß jemand die Frage von oben mit dem Währungsumrechner?

 
derHund
22-02-2004, 19:24 
 
Weiß jemand die Frage von oben mit dem Währungsumrechner?
es wäre schön, wenn du es in deinen posts ändern würdest, danke.

in allen ... danke.

 
jochenj
22-02-2004, 21:51 
 
HI Jacky,

wir sollten ganz vorne anfangen mit php.

man kann html über php ausgeben lassen mit z.b.

<?php
echo "<html>.....
</html>";
//wir befinden uns hier im php teil, und zwar in der echo anweisung
?>


will ich aber über php etwas verändern lassen, dann muss ich wie in
jeder anderen programmiersprache eine neue anweisung beginnen

ausgabe am bildschirm
wenn ... dann mache ....
ausgabe am bildschirm

bei dir würde das bedeuten


<?php
//bildschirmausgabe
echo "<html>...";
//wenn dann
if (1 != 2)
then
{
echo "<body> 1 ist nicht 2 </body>";
}
//bildschirmausgabe
echo "</html>";
?>


wird es dir jetzt deutlicher, warum das nicht geht?

deine if abfragen werden hier als html interpretiert und nicht als php (sie befinden sich in der echo-anweisung als string.

-> auf ein neues:p

ach ja, man sollte auch schauen, welche namen die variablen haben $_POST['name'] habe ich verwendet, weil mein formular ein feld mit dem namen 'name' hatte, das ich per POST übergeben hatte -> bei dir gibt es jedoch kein formularfeld mit dem namen 'name'

 
Jacky
23-02-2004, 09:32 
 
Das Script gibt jetzt
DMsindEuro
aus. Also ohne Geld Betrag



<?

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];
}

//wenn die Variable action nicht übergeben wurde, deklarieren
if (!isset($_GET['action']))
{
$_GET['action'] = 'default';
}
//abfragen, ob ein- oder ausgegebn werden soll
switch ($_GET['action'])
{
//die ausgabe
case 'anzeigen': echo $_POST['$betrag'];
echo $_POST['geld'];
echo "sind";
echo "$ergebnis";
echo $_POST['geld1'];
break;
// die eingabe
default: echo "<html>
<head>
</head>
<body>
<form action=\"".$_SERVER['PHP_SELF']."?action=anzeigen\" method=\"post\"><h2>W&auml;hrungsumrechner</h2><p>
Anfangsw&auml;hrung<p>
<select size=1 name=geld>
<option
if($geld=='DM'){selected}
>DM
<option
if($geld=='Franc'){selected}
>Franc
<option
if($geld=='Peseten'){selected}
>Peseten
<option
if($geld=='Euro'){selected}
>Euro
</select><p>

Zielw&auml;hrung<p>
<select size=1 name=geld1>
<option
if($geld1=='DM'){selected}
>DM
<option
if($geld1=='Franc'){selected}
>Franc
<option
if($geld1=='Peseten'){selected}
>Peseten
<option
if($geld1=='Euro'){selected}
>Euro
</select><p>
Betrag<p>
<input type=text name=\"betrag\"><br><br>
<input type=\"submit\" name=\"submit\" value=\"Ergebniss anzeigen\">
</form>
</body>
</html>";
break;
}
?>

 
Wurzel
23-02-2004, 09:42 
 
1. ob das so richtig ist ?echo $_POST['$betrag'];

2. wenn du mit $_POST arbeitest, solltest du es auch überall nutzen:if($betrag)
{
$rate[DM]=0.51;
$rate...

3. solltest du ^^ besser prüfen, ob betrag einen (zahlen)wert beinhaltet

4. solltest du dir überlegen, was passiert, wenn dem nicht so ist (betrag != zahl)

 
Jacky
23-02-2004, 10:35 
 
Ich habs probiert aber bin mir nicht sicher ob es stimmt.
Die if frage für Zahlen klappt nicht



<?

if($_POST['$betrag'])
{
if($_POST != 0-9)
{
echo "Der Betrag muss eine Zahl sein!";
}
else
{
$_POST['$rate[DM]=0.51'];
$_POST['$rate[Franc]=0.15245'];
$_POST['$rate[Peseten]=0.006010'];
$_POST['$rate[Euro]=1'];
$_POST['$rate1[DM]=1/$rate[DM]'];
$_POST['$rate1[Franc]=1/$rate[Franc]'];
$_POST['$rate1[Peseten]=1/$rate[Peseten]'];
$_POST['$rate1[Euro]=1'];
$_POST['$ergebnis=$rate[$geld]*$betrag+$rate1[$geld1]'];
}
}

//wenn die Variable action nicht übergeben wurde, deklarieren
if (!isset($_GET['action']))
{
$_GET['action'] = 'default';
}
//abfragen, ob ein- oder ausgegebn werden soll
switch ($_GET['action'])
{
//die ausgabe
case 'anzeigen': echo $_POST['$betrag'];
echo $_POST['geld'];
echo "sind";
echo "$ergebnis";
echo $_POST['geld1'];
break;
// die eingabe
default: echo "<html>
<head>
</head>
<body>
<form action=\"".$_SERVER['PHP_SELF']."?action=anzeigen\" method=\"post\"><h2>W&auml;hrungsumrechner</h2><p>
Anfangsw&auml;hrung<p>
<select size=1 name=geld>
<option
if($geld=='DM'){selected}
>DM
<option
if($geld=='Franc'){selected}
>Franc
<option
if($geld=='Peseten'){selected}
>Peseten
<option
if($geld=='Euro'){selected}
>Euro
</select><p>

Zielw&auml;hrung<p>
<select size=1 name=geld1>
<option
if($geld1=='DM'){selected}
>DM
<option
if($geld1=='Franc'){selected}
>Franc
<option
if($geld1=='Peseten'){selected}
>Peseten
<option
if($geld1=='Euro'){selected}
>Euro
</select><p>
Betrag<p>
<input type=text name=betrag><br><br>
<input type=\"submit\" name=\"submit\" value=\"Ergebniss anzeigen\">
</form>
</body>
</html>";
break;
}
?>

 
derHund
23-02-2004, 13:55 
 
$_POST['$ergebnis=$rate[$geld]*$betrag+$rate1[$geld1]'];
:D

 
Wurzel
23-02-2004, 14:12 
 
irgendwie ist dieser thread eine ansammlung von
missverständnissen :goth:

@jacky
wie wärs, wenn du erstmal mit hilfe deines buches & www.schattenbaum.net
versuchst die grundlagen zu verstehen bzw. zu erfassen, was du da machst
... oder auch nicht.

 
Jacky
24-02-2004, 11:27 
 
Danke Wurzel
ich lese mir mal die Tutorials durch.
Ich bin ein bisschen frustriert über das PHP Buch
kaum der Scripte gehen und die gedownloadeten von
der Seite auch nicht.
Ich hab mir jetzt schon andere Bücher bestellt und
ein paar e-Books und Tutorials gedownloadet.

 
Jacky
06-03-2004, 18:03 
 
Wenn jemand lust und zeit hat das Script zum Laufen zu bringen
und mir erklärt wass er daran geändert hat bin ich ihm dankbar!

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 23:08 Uhr.