
72036
14.02.2009, aktualisiert am 23.02.2009
Problem bei PHP Verzweigung
Hallo, ich habe ein Problem mit der PHP-Programierung.
Ich mache momentan ne Ausbildung zur IT-System Elektronikerin und nun steht die PHP Programierung an.
Nun habe ich ein Problem.
Ich habe zu Hause ein bissl gelernt und dann habe ich folgende html und folgende php geschrieben:
das ist die html:
und hier die php:
diese beiden habe ich miteinander verzweigt, wie ihr sehen könnt.
Nun habe ich mir natürlich auch xampp heruntergeladen und es gestartet....dann noch alle Dateien in den Ordner htdocs gespeichert und alles.
All diese Sachen helfen bei mir aber nicht. Die html Seite wird fehlerfrei angezeigt, aber sobald ich auf absenden klicke, wird in dem erscheinendem Fenster nur mein php dokument dargestellt und nicht die auswertung....
kann mir mit meinem problem jemand helfen??
Danke schon im vorraus
lg Sunny
Ich mache momentan ne Ausbildung zur IT-System Elektronikerin und nun steht die PHP Programierung an.
Nun habe ich ein Problem.
Ich habe zu Hause ein bissl gelernt und dann habe ich folgende html und folgende php geschrieben:
das ist die html:
<html>
<body>
<form action="Mwst berechnung.php" method="post">
Bitte wählen Sie einen Artikel aus
<select name="$artTyp" size=1">
<option> CD-Rom </option>
<option> Buch </option>
<option> Sonstige </option>
</select><p>
<input type="submit">
<input type ="reset">
</form>
</body>
</html>
/* Programm zur MwSt-Berechnung */
<html>
<body>
<?php
$netto = 1000;
$artTyp = "B"; // Artikeltyp, B: Buch, C: CD-ROM
if ("B" == $artTyp)
{
$uSt = $netto*0.07;
echo "Der Artikel ist ein Buch";
}
else {
$uSt = $netto*0.16;
echo "Der Artikel ist eine CD-ROM";
}
$brutto = $netto+$uSt;
echo "Der Artikelpreis: $brutto";
?>
</body>
</hmtl>
Nun habe ich mir natürlich auch xampp heruntergeladen und es gestartet....dann noch alle Dateien in den Ordner htdocs gespeichert und alles.
All diese Sachen helfen bei mir aber nicht. Die html Seite wird fehlerfrei angezeigt, aber sobald ich auf absenden klicke, wird in dem erscheinendem Fenster nur mein php dokument dargestellt und nicht die auswertung....
kann mir mit meinem problem jemand helfen??
Danke schon im vorraus
lg Sunny
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 109019
Url: https://administrator.de/forum/problem-bei-php-verzweigung-109019.html
Ausgedruckt am: 13.04.2025 um 10:04 Uhr
11 Kommentare
Neuester Kommentar
rufst du die HTML auch über http://localhost/... auf und nicht über file:// ... !?
(ich nutze JanaServer2, PHP mit Sqlite und 'Active' Perl)
nur 16% Steuer? - wo wohnst du?
(ich nutze JanaServer2, PHP mit Sqlite und 'Active' Perl)
$uSt = $netto*0.16;
echo "Der Artikel ist eine CD-ROM";
Hi Sunny,
<select name="$artTyp" size=1">
ist schonmal falsch, hier gehört . . .
<select name="artTyp" size=1">
. . . hin, ohne Dollarzeichen.
Um die Select-Box im PHP-Script auszuwerten, würde ich
in dieser die Options um den Parameter value erweitern:
Gesendet wird dann 1,2 oder 3, je nach Auswahl.
Gesendete Formulardaten werden, wenn die gewählte Methode post
ist, im $_POST-Array gespeichert. Die Auswahl wird also mit $_POST['artTyp']
abgefragt.
Die if-else-Konstruktion würde ich durch switch abkürzen:
Die Artikeltypen würde ich in einem Array ablegen. Der Index wird dann
mit $_POST['artTyp'] angesprochen, welcher ja 1,2 oder 3 enthält:
Je nachdem, welche Zahl gesendet wird, gibt . . .
echo "Sie haben Artikeltyp ".$artikel[$_POST['artTyp']]." gewählt.";
. . . den entsprechenden Artikeltyp aus.
Vollständig würde das dann so aussehen:
Gruß
Günni
<select name="$artTyp" size=1">
ist schonmal falsch, hier gehört . . .
<select name="artTyp" size=1">
. . . hin, ohne Dollarzeichen.
Um die Select-Box im PHP-Script auszuwerten, würde ich
in dieser die Options um den Parameter value erweitern:
<select name="$artTyp" size=1">
<option value="1"> CD-Rom </option>
<option value="2"> Buch </option>
<option value="3"> Sonstige </option>
</select>
Gesendet wird dann 1,2 oder 3, je nach Auswahl.
Gesendete Formulardaten werden, wenn die gewählte Methode post
ist, im $_POST-Array gespeichert. Die Auswahl wird also mit $_POST['artTyp']
abgefragt.
Die if-else-Konstruktion würde ich durch switch abkürzen:
<?php>
switch($_POST['artTyp']){
case 1:$MwSt=0.16;break;
case 2:$MwSt=0.07;break;
case 3:$MwSt=0.16;
}
?>
Die Artikeltypen würde ich in einem Array ablegen. Der Index wird dann
mit $_POST['artTyp'] angesprochen, welcher ja 1,2 oder 3 enthält:
<?php>
$artikel=array("1" => "CD-Rom","2" => "Buch","3" => "Sonstiges");
?>
Je nachdem, welche Zahl gesendet wird, gibt . . .
echo "Sie haben Artikeltyp ".$artikel[$_POST['artTyp']]." gewählt.";
. . . den entsprechenden Artikeltyp aus.
Vollständig würde das dann so aussehen:
<?php>
$netto=100;
$artikel=array("1" => "CD-Rom","2" => "Buch","3" => "Sonstiges");
switch($_POST['artTyp']){
case 1:$MwSt=0.16;break;
case 2:$MwSt=0.07;break;
case 3:$MwSt=0.16;
}
echo "Sie haben Artikeltyp ".$artikel[$_POST['artTyp']]." gewählt.<br>";
echo "Nettopreis ".$netto."<br>";
echo "MwSt ".$MwSt * $netto."<br>";
$brutto=$netto + $MwSt*$netto;
echo "Bruttopreis ".$brutto;
?>
Gruß
Günni
.. jetzt über schwemmt Sunny6 nicht mit eurem Code.
http://www.php.net/manual/de/ und http://de.selfhtml.org/ muss man kennen.
Mein Senf dazu:
Was wenn jemand ein 'artTyp' = 4 absendet - dann hat er keine MWSt. - weil da jemend den
vergessen hat. 
http://www.php.net/manual/de/ und http://de.selfhtml.org/ muss man kennen.
Mein Senf dazu:
Was wenn jemand ein 'artTyp' = 4 absendet - dann hat er keine MWSt. - weil da jemend den
switch () {
..
default:
...!!!...
}
Hi nxclass,
aus Versehen artTyp=4 abzusenden ist für OttoNormal eigentlich nicht möglich,
da er seine Auswahl aus der Select-Liste vornimmt, und da sind die Werte vorgegeben.
Ein gewiefter Freak kann das Formular natürlich manipulieren und andere Werte unterschieben,
aber darum ging es in diesem Thread doch nicht. Es ging sich hier erstmal um die Frage, wie
kann ich Daten übertragen und auswerten.
Die Frage, wie kann ich Manipulationen verhindern, gehört in eine ganz andere Kategorie, die
man angehen kann, wenn alles andere funktioniert.
Und wie du schon richtig bemerktest:
Wir wollen Sunny doch nicht überfordern
Gruß
Günni
aus Versehen artTyp=4 abzusenden ist für OttoNormal eigentlich nicht möglich,
da er seine Auswahl aus der Select-Liste vornimmt, und da sind die Werte vorgegeben.
Ein gewiefter Freak kann das Formular natürlich manipulieren und andere Werte unterschieben,
aber darum ging es in diesem Thread doch nicht. Es ging sich hier erstmal um die Frage, wie
kann ich Daten übertragen und auswerten.
Die Frage, wie kann ich Manipulationen verhindern, gehört in eine ganz andere Kategorie, die
man angehen kann, wenn alles andere funktioniert.
Und wie du schon richtig bemerktest:
Wir wollen Sunny doch nicht überfordern
Gruß
Günni