| 
		|  Willkommen |  
	|  |  
 
		|  myGully |  
	|  |  
 
		|  Links |  
	|  |  
 
		|  Forum |  
	|  |  
 |  | 
	
		|  |  
	
	
		
	
	
	
		|  18.01.12, 17:33 | #1 |  
	| Anfänger 
				 
				Registriert seit: Jan 2010 
					Beiträge: 17
				 
		
			
				 Bedankt: 8 
			
		
	      | 
				 Währungsrechner PHP, was is falsch?? 
 
			
			Hallöchen   
Hab mal folgendes PHP erstellt, allerdings will das nciht laufen   
Kann mir jemand sagen wo der/die Fehler sind? 
Bei manchen Dingen bin ich mir sehr unsicher, da ich das aus nem bissel Wissen von php, c, und java zusammengeschmissen habe bzw öfter mal was durcheinander haue     
Danke schonmal    
	PHP-Code: 
		
			
<html>
<head>
 <title>Fremdwährung-in-€-Rechner, prog. by ......</title>
 </head>
 
 <body>
 <H1>Was ist ihr Geld wert?</H1> <br/>
 <H4> Fremdwährung-in-€-Rechner, prog. by blablabla </H4> <br/>
 <form action = "Waehrungsrechner.php" method = "post">
 Bitte geben Sie den gewünschten Betrag und die Fremdwährung ein, um den Betrag in Euro ausgeben zu lassen: <br />
 Betrag: <input type="text" name="TxtBetrag" > <br />
 Währung: <input type="text" name="TxtWaehrung" > <br />
 <input type ="submit" name = "BtnOK" > <br/><br/>
 
 zulässige Währungskürzel: <br/>
 P --> Britische Pfund <br/>
 D --> US-Dollar <br/>
 F --> Ungarische Forint <br/>
 Y --> Japan Yen <br/>
 </form>
 </body>
 
 
 </html>
 
 
 
 <?php
 
 $Betrag = $_POST["TxtBetrag"];
 $Waehrung = $_POST["TxtWaehrung"];
 
 if ($Waehrung == p || P)
 {
 $Betrag/0.88 == $BetragP;
 
 echo $Betrag $Waehrung entspricht $BetragP Euro!;
 }
 
 else ($Waehrung == d || D)
 {
 $Betrag/1.49 == $BetragD;
 
 echo $Betrag $Waehrung entspricht $BetragD Euro!;
 }
 
 else ($Waehrung == f || F)
 {
 $Betrag/269.91 == $BetragF;
 
 echo $Betrag $Waehrung entspricht $BetragF Euro!;
 }
 
 else ($Waehrung == y || Y)
 {
 $Betrag/132.18 == $BetragY;
 
 echo $Betrag $Waehrung entspricht $BetragY Euro!;
 }
 
 
 echo Und nun sehen Sie wie viel Geld sie haben! :);
 
 ?>
 |  
	|   |   |  
	
		
	
	
	
		|  18.01.12, 20:10 | #2 |  
	| Ist öfter hier 
				 
				Registriert seit: Nov 2010 
					Beiträge: 196
				 
		
			
				 Bedankt: 96 
			
		
	      | 
 
			
			Da stimmt nicht viel. 
1. Die Abfragen im if ergeben keinen Sinn. Ich vermute mal, du möchtest abfragen, ob $Waehrung p oder P ist, das geht nur getrennt: if (($Waehrung== p) || ($Waehrung == P))
 
2. Setzt man Zeichenketten in ' oder ", also if (($Waehrung== "p") || ($Waehrung == "P"))
 
3. Hinter die else gehört wieder ein if, also elseif (ein Wort)
 
4. Zuweisungen macht man nur mit einem =, also $Betrag/0.88=$BetragP
 
5. Auf der linken Seite der Zuweisung darf man nicht rechnen, also $BetragP = $Betrag/0.88
 
6. Auch in den echos setzt man Zeichenketten in ' oder ", also echo "$Betrag $Waehrung entspricht $BetragP Euro!"
 
7. Die Aussage hinter dem echo ist eine Aussage und kein Befehl, also "$Betrag $Waehrung entspricht $BetragP Euro."    
Das gilt übrigens alles sinngemäß auch für Java, C und C#
 
Ich empfehle Dir, Dich mal mit den Sprachgrundlagen zu beschäftigen
		
				__________________ On a long enough timeline, the survival rate for everyone drops to zero. (Fight Club) |  
	|   |   |  
	
		
	
	
	
		|  18.01.12, 20:29 | #3 |  
	| Anfänger 
				 
				Registriert seit: Jan 2010 
					Beiträge: 17
				 
		
			
				 Bedankt: 8 
			
		
	      | 
 
			
			4. und 5. is mir selbst schon aufgefallen     
2. is echt nen blöder Fehler    
1. wusst ich nciht...   
3. auch nicht.... wobei ich meine dieses elseif schonmal bei java gehört zu haben (is schon paar jahre her das ich Java hatte    )
 
zu 6. 
das hinter dem echo muss nicht unbedingt in "" kommen.... zumindest funzte das bisher immer so bei mir.... 
Ist halt die Frage ob nur mit "" die $Zuweisungen funzen.... ich werds demnach auf jeden fall mal rein tun...
 
Schonmal großes Danke!!!!    |  
	|   |   |  
	
		
	
	
	
		|  18.01.12, 21:19 | #4 |  
	| Profi 
				 
				Registriert seit: May 2009 Ort: riding the roos 
					Beiträge: 1.461
				 
		
			
				 Bedankt: 1.057 
			
		
	      | 
 
			
			7. stimmt auch so nicht und wird so auch nicht funktionieren.
 Die korrekte Form in PHP ist folgende :
 
 echo $Betrag .  ' ' . $Waehrung . ' entspricht ' . $BetragY . ' Euro!';
 |  
	|   |   |  
	
		
	
	
	
		|  19.01.12, 05:44 | #5 |  
	| Profi 
				 
				Registriert seit: May 2009 Ort: riding the roos 
					Beiträge: 1.461
				 
		
			
				 Bedankt: 1.057 
			
		
	      | 
				  
 
			
			mal auf die Schnelle : 
	Code: <?php
$Betrag = (isset($_POST["TxtBetrag"])) ? $_POST["TxtBetrag"] : 0;
$Waehrung = (isset($_POST["TxtWaehrung"])) ? $_POST["TxtWaehrung"] : '';
if ($Betrag <= 0 || $Waehrung == '') {
	exit;
}
if ($Waehrung == 'p' || $Waehrung == 'P') {
	$div_betrag = 0.88;
	$cur_txt = ' Britische Pfund';
} elseif ($Waehrung == 'd' || $Waehrung == 'D'){
	$div_betrag = 1.49;
	$cur_txt = ' US Dollar';
} elseif ($Waehrung == 'f' || $Waehrung == 'F'){
	$div_betrag = 269.91;
	$cur_txt = ' Ungarische Forint';
} elseif ($Waehrung == 'y' || $Waehrung == 'Y'){
	$div_betrag = 132.18;
	$cur_txt = ' Japanische Yen';
}
echo $Betrag . $cur_txt . ' entsprechen ' . bc_div($Betrag,$div_betrag,2) . ' Euro!<br />';
echo 'Und nun sehen Sie wie viel Geld sie haben!';
?> Wobei ich das zu aufwendig gelöst finde.
 
Du solltest in der From mit einem Select arbeiten, dann kannst du dir den ganzen Quatsch mit den Oder-Abfragen schonmal sparen und wenn du dann auch noch die Währung als Text abfragst ( evtl. als Währungskürzel) wird es noch übersichtlicher.
 
Beachte auch das du die $_POST keinesfalls so ungeprüft in eine Datenbank übernehmen dürftest. 
 
Für den Befehl bc_div muss in PHP bc_math aktiv sein, das sollte aber heute Standard sein.
 
Und das Ganze hat natürlich auch nur rudimentäre Fehlerprüfung
		 |  
	|   |   |  
	
		
	
	
	
		|  19.01.12, 21:37 | #6 |  
	| Ist öfter hier 
				 
				Registriert seit: Nov 2010 
					Beiträge: 196
				 
		
			
				 Bedankt: 96 
			
		
	      | 
 
			
			
	Zitat: 
	
		| 
					Zitat von kkhamburg  7. stimmt auch so nicht und wird so auch nicht funktionieren. |  Doch. Mit "" interpretiert PHP Variablen im Ausgabetext, mit '' nicht, dann musst Du mit . arbeiten.
		 
				__________________ On a long enough timeline, the survival rate for everyone drops to zero. (Fight Club) |  
	|   |   |  
	
		
	
	
	
		|  19.01.12, 22:30 | #7 |  
	| Profi 
				 
				Registriert seit: May 2009 Ort: riding the roos 
					Beiträge: 1.461
				 
		
			
				 Bedankt: 1.057 
			
		
	      | 
 
			
			
	Zitat: 
	
		| 
					Zitat von Epeos  Doch. Mit "" interpretiert PHP Variablen im Ausgabetext, mit '' nicht, dann musst Du mit . arbeiten. |  Stimmt, habe ich für mich persönlich ausgeklammert weil ich es als "unsauber" empfinde.
 
Aber du hast natürlich Recht    |  
	|   |   |  
	
		
	
	
	
		|  20.01.12, 16:55 | #8 |  
	| Ist öfter hier 
				 
				Registriert seit: Nov 2010 
					Beiträge: 196
				 
		
			
				 Bedankt: 96 
			
		
	      | 
 
			
			
	Zitat: 
	
		| 
					Zitat von kkhamburg  ... weil ich es als "unsauber" empfinde. |  Damit gibst Du meine Meinung über PHP perfekt wieder    
				__________________ On a long enough timeline, the survival rate for everyone drops to zero. (Fight Club) |  
	|   |   |  
	
		
	
	
	
		|  20.01.12, 17:06 | #9 |  
	| Anfänger 
				 
				Registriert seit: Nov 2011 
					Beiträge: 13
				 
		
			
				 Bedankt: 6 
			
		
	      | 
 
			
			Er kann auch einfach mehrere input felder machen, die dann mit  
	Code:  <input type="test" name="NAME" value="echo ($_POST['NAME']) ? $_POST['NAME'] : '' "> sich automatisch auf die richtigen werte stellen.. musst natürlich kkhamburgs code verwenden bzw den Umrechner ne   
aber finde das etwas leichter als Select..  
nicht vergessen dass du überprüfen muss das maximal 1 der inputfelder gefüllt ist, damit ein Wert rausgepickt werden kann     
	Zitat: 
	
		| Zitat: 
 
	Stimmt, habe ich für mich persönlich ausgeklammert weil ich es als "unsauber" empfinde.Zitat: 
	
		| Zitat von Epeos Doch. Mit "" interpretiert PHP Variablen im Ausgabetext, mit '' nicht, dann musst Du mit . arbeiten.
 |  
 Aber du hast natürlich Recht
 |  Epeos, es natrürlich Programmiere abhängig, jedoch ist die die  '. $var .' Methode oft beliebert, da man sie Variablen schöner aus dem Code erkennen kann und es damit eindeutig als SAUBERER gilt. 
Man muss schileßlich auch nicht einrücken jedoch ist es empfelenswert    |  
	|   |   |  
	
		
	
	
	
		|  21.01.12, 21:32 | #10 |  
	| Newbie 
				 
				Registriert seit: Dec 2011 
					Beiträge: 58
				 
		
			
				 Bedankt: 19 
			
		
	      | 
 
			
			Mal ein kleiner Einwurf zu den ganzen If's. Wäre da nicht eine switch als bessere Alternative?
		 |  
	|   |   |  
	
		
	
	
	
	
	| 
	|  Forumregeln |  
	| 
		
		Du kannst keine neue Themen eröffnen Du kannst keine Antworten verfassen Du kannst keine Anhänge posten Du kannst nicht deine Beiträge editieren 
 HTML-Code ist Aus. 
 |  |  |  Alle Zeitangaben in WEZ +1. Es ist jetzt 07:02 Uhr. ().
 
	
	
		
	
	
 |