Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Problem bei PHP Verzweigung

Frage Entwicklung PHP

Mitglied: 72036

72036 (Level 1)

14.02.2009, aktualisiert 23.02.2009, 4570 Aufrufe, 11 Kommentare

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:
01.
<html> 
02.
<body> 
03.
 
04.
<form action="Mwst berechnung.php" method="post"> 
05.
 
06.
Bitte wählen Sie einen Artikel aus 
07.
 
08.
<select name="$artTyp" size=1"> 
09.
	<option> CD-Rom </option> 
10.
	<option> Buch </option> 
11.
	<option> Sonstige </option> 
12.
</select><p> 
13.
	<input type="submit"> 
14.
	<input type ="reset"> 
15.
 
16.
</form> 
17.
 
18.
</body> 
19.
</html>
und hier die php:
01.
/* Programm zur MwSt-Berechnung */ 
02.
 
03.
<html> 
04.
<body> 
05.
<?php 
06.
  $netto = 1000; 
07.
  $artTyp = "B"; // Artikeltyp, B: Buch, C: CD-ROM 
08.
  
09.
  if ("B" == $artTyp) 
10.
11.
   $uSt = $netto*0.07; 
12.
   echo "Der Artikel ist ein Buch"; 
13.
14.
  else { 
15.
   $uSt = $netto*0.16; 
16.
   echo "Der Artikel ist eine CD-ROM"; 
17.
18.
  $brutto = $netto+$uSt; 
19.
  echo "Der Artikelpreis: $brutto"; 
20.
 
21.
?> 
22.
</body> 
23.
</hmtl>
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
Mitglied: nxclass
14.02.2009 um 18:46 Uhr
rufst du die HTML auch über http://localhost/... auf und nicht über file:// ... !?

(ich nutze JanaServer2, PHP mit Sqlite und 'Active' Perl)

01.
$uSt = $netto*0.16; 
02.
echo "Der Artikel ist eine CD-ROM";
nur 16% Steuer? - wo wohnst du?
Bitte warten ..
Mitglied: kaiand1
14.02.2009 um 18:51 Uhr
Lass mich raten du hast die PHP Datei .htm benannt anstelle .php ?!
16% MWST? Ist bestimmt eine ältere Vorlage oder? Hab letztens in ein Buch ne € Betrag stehen sehen aber als Bild DM Münzen :D
Bitte warten ..
Mitglied: 72036
14.02.2009 um 20:27 Uhr
Zitat von kaiand1:
Lass mich raten du hast die PHP Datei .htm benannt anstelle .php ?!
16% MWST? Ist bestimmt eine ältere Vorlage oder? Hab letztens in
ein Buch ne € Betrag stehen sehen aber als Bild DM Münzen :D


Nein ich habe die php natürlich .php genannt.....und ja das mit der MWST ist eine ältere Vorlage aus der Schule....


Dann zu nxclass:
Ich kann nicht auf den localhost zugreifen...das ist ja eines meiner Probleme, die ich habe.
Bitte warten ..
Mitglied: kaiand1
14.02.2009 um 20:50 Uhr
Wenn du Xampp entpackt hast hast du im Xampp dir auch die setup_xampp.bat vorher ausgeführt damit der die Pfadangaben anpassen kann gemacht?.
Mit xampp-control.exe kannst du den Status sehen. Im Logfile evtl gucken wenn der nicht startet warum der nicht will
Bitte warten ..
Mitglied: 72036
14.02.2009 um 22:49 Uhr
so das klappt jetzt alles soweit und ich kann in den localhost reinschauen und die einzelnen Dateien auch öffnen....nun habe ich aber ein neues Problem:

Meine PHP löst die HTML falsch auf....könnt ihr mir helfen??


Das ist meine .html Datei......diese wird ohne Probleme richtig angezeigt:

<html>
<body>

<form action="mwst.php" method="post">

Bitte wählen Sie einen Artikel aus

<select name="$artTyp" size=1">
<option> Buch </option>
<option> CD-ROM </option>
<option> Sonstiges </option>
</select><p>
<input type="submit">
<input type ="reset">

</form>

</body>
</html>


So und jetzt die PHP, die diese auswerten soll:

<html>
<body>
<?php
$netto = 1000;
$artTyp = "Buch"; Artikeltyp, B: Buch
$artTyp = "CD-ROM";
Artikeltyp, C: CD-ROM
$artTyp = "Sonstiges"; // Artikeltyp, S: Sonstiges

if ($artTyp = "Buch")
{
$uSt = $netto * 0.07;
echo "Der Artikel ist ein Buch";
}

else
{
if ($artTyp = "CD-ROM")
{

$uSt = $netto * 0.16;
echo "Der Artikel ist eine CD-Rom";
}
}

$brutto = $netto+$uSt;
echo "Der Artikelpreis: $brutto";

?>
</body>
</hmtl>

Die Auswertung, die ich von der PHP erhalte ist immer unabhängig davon, welchen Artikel ich auswähle:

Der Artikel ist ein BuchDer Artikelpreis: 1070


Danke im Vorraus

Sunny
Bitte warten ..
Mitglied: Guenni
15.02.2009 um 11:21 Uhr
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:

01.
 
02.
<select name="$artTyp" size=1"> 
03.
<option value="1"> CD-Rom </option> 
04.
<option value="2"> Buch </option> 
05.
<option value="3"> Sonstige </option> 
06.
</select> 
07.
 
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:

01.
 
02.
<?php> 
03.
 
04.
switch($_POST['artTyp']){ 
05.
  case 1:$MwSt=0.16;break
06.
  case 2:$MwSt=0.07;break
07.
  case 3:$MwSt=0.16; 
08.
09.
 
10.
?> 
11.
 
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:

01.
 
02.
<?php> 
03.
 
04.
$artikel=array("1" => "CD-Rom","2" => "Buch","3" => "Sonstiges"); 
05.
 
06.
?> 
07.
 
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:


01.
 
02.
<?php> 
03.
 
04.
 $netto=100; 
05.
 $artikel=array("1" => "CD-Rom","2" => "Buch","3" => "Sonstiges"); 
06.
 switch($_POST['artTyp']){ 
07.
  case 1:$MwSt=0.16;break
08.
  case 2:$MwSt=0.07;break
09.
  case 3:$MwSt=0.16; 
10.
11.
 echo "Sie haben Artikeltyp ".$artikel[$_POST['artTyp']]." gewählt.<br>"
12.
 echo "Nettopreis ".$netto."<br>"
13.
 echo "MwSt ".$MwSt * $netto."<br>"
14.
 $brutto=$netto + $MwSt*$netto
15.
 echo "Bruttopreis ".$brutto
16.
 
17.
?> 
18.
 
Gruß
Günni
Bitte warten ..
Mitglied: nxclass
15.02.2009 um 12:31 Uhr
.. 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
01.
switch () { 
02.
.. 
03.
    default: 
04.
        ...!!!... 
05.
}
vergessen hat.
Bitte warten ..
Mitglied: Guenni
15.02.2009 um 13:22 Uhr
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
Bitte warten ..
Mitglied: 72036
15.02.2009 um 15:09 Uhr
Hallo Günni, danke schonmal für deine Antwort, aber ich steige da nicht so ganz durch.
Wo berechnet er denn jetzt den Bruttowert und wo die Märchensteuer??

Ich fände es super, wenn du oder jemand anders, mir meine Verfassung eventuell korrigieren könnte.
Wir lernen das in der Art auch in der Schule.


Vielen Dank auch an nxclass.....die Seiten habe ich direkt gespeichert!
Alina
Bitte warten ..
Mitglied: 72036
15.02.2009 um 17:54 Uhr
ein super Genie hat mir geholfen und wir haben es geschafft über das ICQ meine Version so zu ändern, dass jetzt alles läuft und ich bin sooooo glücklich darüber *megafreu*

habe sogar alles verstanden hehe.

Aber danke nochmal an alle hier

lg Sunny
Bitte warten ..
Mitglied: masterG
23.02.2009 um 10:07 Uhr
Somit Thread closed

masterG(Moderator)
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
DSL, VDSL
Problem mit variernder Internetgeschwindigkeit (12)

Frage von schaurian zum Thema DSL, VDSL ...

Windows Netzwerk
gelöst Problem mit PSexec64 von Sysinternals (8)

Frage von MaxMoritz6 zum Thema Windows Netzwerk ...

Windows Server
gelöst Problem nach DC-Installation unter Server 2012 R2 (9)

Frage von manuel1985 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...