if/else-Anweisung

07/17/2016 11:02 stefansh-a31c#1
Hallo,

ich bin erst vor kurzem in die Webentwicklung eingestiegen und lerne gerade PHP.
Eine kleine if/else-Übungsaufgabe bereitet mir Probleme, denn es wird einfach nichts ausgegeben.

Wo liegt der Fehler?

Vielen Dank für die Hilfe.


07/17/2016 11:14 adistoe#2
Du hast bei S und N die Hochkommas/Anführungszeichen vergessen.
Chars/Strings müssen in PHP in ' oder " stehen.

Ausserdem wird die POST Variable innerhalb " nicht interpretiert.


Welche Entwicklungsumgebung benutzt du?


Korrigierter Code:
PHP Code:
<?php
$preis_super 
$_POST["menge"] * 1.4;
$preis_normal $_POST["menge"] * 1.2;

if (
$_POST["sorte"] == 'S') {
    echo 
$_POST["menge"] . " Liter Super kosten $preis_super €.";
} elseif (
$_POST["sorte"] == 'N') {
    echo 
$_POST['menge'] . " Liter Normal kosten $preis_normal €.";
} else {
    echo 
"Bitte alle Felder korrekt ausfüllen.";
}
PS: Ich rate dir, das Error Reporting einzuschalten.
Infos dazu: [Only registered and activated users can see links. Click Here To Register...]

Mit eingeschaltetem Error Reporting erhälst du solche Fehlermeldungen:

Parse error: syntax error, unexpected '"', expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in _______\tanken.php on line 7

#Edit:
Das Punkt (.) verbindet verschiedene Teile zu einem ganzen String (In deinem Fall den POST-Wert mit dem restlichen String)
07/17/2016 11:20 Brolaf!#3
Allgemeiner Tipp: rück alles richtig zusammen. Du bringst sonst schnell durcheinander was du eigentlich meintest.
Jede Klammer sollte an der Stelle stehen an der sie hingehört, sonst knn man nicht mehr nachvollziehen was man wollte.
07/17/2016 11:32 stefansh-a31c#4
Vielen Dank für die Hilfe und besonders für den Tipp mit dem error_reporing.

Ich benutze Atom.

Quote:
Originally Posted by Brolaf! View Post
Allgemeiner Tipp: rück alles richtig zusammen. Du bringst sonst schnell durcheinander was du eigentlich meintest.
Jede Klammer sollte an der Stelle stehen an der sie hingehört, sonst knn man nicht mehr nachvollziehen was man wollte.
Wo ist das Problem? Welche Klammer passt nicht?
07/17/2016 11:35 adistoe#5
Quote:
Originally Posted by Brolaf! View Post
Allgemeiner Tipp: rück alles richtig zusammen. Du bringst sonst schnell durcheinander was du eigentlich meintest.
Jede Klammer sollte an der Stelle stehen an der sie hingehört, sonst knn man nicht mehr nachvollziehen was man wollte.
Das Thema Einrückung ist sehr umstritten. Jeder macht es ein wenig anders.
Ein Blick auf folgende Website lohnt sich aber zum Thema PHP sicher:

[Only registered and activated users can see links. Click Here To Register...]

Ganz besonders auf die ersten beiden "PSR":
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
07/17/2016 11:59 stefansh-a31c#6
Ich habe den Code jetzt verbessert und etwas erweitert, aber dennoch erhalte ich keine Ausgabe.


Außerdem habe ich folgende Zeile in meine php.ini eingetragen, aber verändert hat sich nichts.
PHP Code:
error_reporting E_ALL 
edit: Die Ausgabe funktioniert jetzt (warum auch immer), aber das Error Reporting leider noch nicht.
07/17/2016 12:46 NotEnoughForYou#7
Hast du auch

PHP Code:
display_errors On 
?
07/17/2016 12:56 stefansh-a31c#8
Quote:
Originally Posted by NotEnoughForYou View Post
Hast du auch

PHP Code:
display_errors On 
?
Ja. Sollte jetzt auch funktionieren - Ich gebe Rückmeldung wenn nicht.