mrcljnff
Goto Top

PHP Datei für das ABI

Hallo,
ich habe demnächst ABI und muss hier eine Aufgabe lösen auf dich ich seit Wochen keine Antwort finde.
Und zwar soll meine Website, unter Auswahl der Flugziele und der Klasse und der Personenanzahl mit Benutzer und Passwort den Preis zurückgeben, aber ich hab einfach keine Lösung für das Problem. Ich weiss dass ich bei form action einen Fehler habe und die Datei selber nehmen muss aber mit PHP_SELF schaff ich es nicht.
Kann mir bitte einer Helfen? Ich bin wirklich am verzweifeln und am 25.06 muss ich es Vortragen.


Ich bedanke mich schon mal im voraus!


Gruß

mrcljnff


<html>
<head>
<title></title>
<meta name="author" content="Papa">  
<meta name="editor" content="html-editor phase 5">  
</head>
<body>
<table align= "center">  
<tr>
<td>

<div id="root_site">  

<div id="head_main_container">  
Happy-Air
<div id="logo">  
<img src= "C:\Users\Papa\Desktop\haha.png" align="right" />  
</div>
<h1> Flüge buchen </h1>
<h2> Auswahl des Fluges <h2>
<ul>
<li> Berlin -----> London
<li> Frankfurt -----> Rom
<li> Frankfurt -----> Madrid
<ul>
<h2> Auswahl der Klasse </h2>
<form action = "Flug.php" method= "post" enctype ="text/plain" >  
<table>
<tr> <td> Benutzername: </td> <td> <input name ="Bname" size="20" maxlength="20"> </td> </tr>  
<tr> <td> Passwort: </td> <td> <input name ="Passwort" size ="20" maxlength ="20" type="password"> </td> </tr>  
<br>
<input type= "radio" name="Economy" value ="Economy" /> Economy Class <br>  
<input type= "radio" name=" Premium" value ="Premium" /> Premium Class <br>  
<input type= "radio" name=" Business" value ="Business" /> Business Class <br>  
<input type= "radio" name=" First" value ="First" /> First Class <br>  

<h2> Anzahl der Personen </h2>
<select name ="Anzahl" size ="1">  
<option> 1 Person </option>
<option> 2 Person </option>
<option> 3 Person </option>
</select>
<input type ="submit" value="Absenden" />  
<?php
 
$Economy = 100€;
$Premium = 150€;
$Business = 200€;
$First = 250€;
$1Person= 100%;
$2Person= 200%;
$3Person= 300%;

$Gesamtpreis = 0€;
if (empty ( $_POST ['Economy']) && empty ( $_POST ['Premium']) && empty ( $_POST ['Business']) && empty ( $_POST ['First'] && empty ( $_POST ['First'])  
&& empty ( $_POST ['Anzahl']) {  
}
else {
if ( $_POST ['Economy'] && ( $_POST ['1Person'] == TRUE ) {  
$Gesamtpreis = $Gesamtpreis + $Economy * $1Person ;
}
if ( $_POST ['Economy'] && ( $_POST ['2Person'] == TRUE ) {  
$Gesamtpreis = $Gesamtpreis + $Economy * $2Person ;
}
if ( $_POST ['Economy'] && ( $_POST ['3Person'] == TRUE ) {  
$Gesamtpreis = $Gesamtpreis + $Economy * $3Person ;
}

if ( $_POST ['Premium'] && ( $_POST ['1Person'] == TRUE ) {  
$Gesamtpreis = $Gesamtpreis + $Premium * $1Person ;
}
if ( $_POST ['Premium'] && ( $_POST ['2Person'] == TRUE ) {  
$Gesamtpreis = $Gesamtpreis + $Premium * $2Person ;
}

if ( $_POST ['Premium'] && ( $_POST ['3Person'] == TRUE ) {  
$Gesamtpreis = $Gesamtpreis + $Premium * $3Person ;
}
if ( $_POST ['Business'] && ( $_POST ['1Person'] == TRUE ) {  
$Gesamtpreis = $Gesamtpreis + $Business * $1Person ;
}
if ( $_POST ['Business'] && ( $_POST ['2Person'] == TRUE ) {  
$Gesamtpreis = $Gesamtpreis + $Business * $2Person ;
}
if ( $_POST ['Business'] && ( $_POST ['3Person'] == TRUE ) {  
$Gesamtpreis = $Gesamtpreis + $Business * $3Person ;
}

if ( $_POST ['First'] && ( $_POST ['1Person'] == TRUE ) {  
$Gesamtpreis = $Gesamtpreis + $First * $2Person ;
}
if ( $_POST ['First'] && ( $_POST ['2Person'] == TRUE ) {  
$Gesamtpreis = $Gesamtpreis + $First * $2Person ;
}
if ( $_POST ['First'] && ( $_POST ['3Person'] == TRUE ) {  
$Gesamtpreis = $Gesamtpreis + $First * $2Person ;
}

echo "Ihr Gesamtpreis beträgt: $Gesamtpreis" }  
 
</body>
</html>

Content-Key: 341109

Url: https://administrator.de/contentid/341109

Printed on: April 20, 2024 at 03:04 o'clock

Member: timene0
timene0 Jun 20, 2017 updated at 17:34:38 (UTC)
Goto Top
Vorab, der Aufbau ist ziemlich schlecht, warum rechnest du mit Prozent und nicht einfach mit dem Multiplikator?
Dazu benötigst du die vielen if Abfragen überhaupt nicht.

Es finden sich auch einige Syntaxfehler und Wissenslücken in Bezug auf HTML.

Bei
<option> 1 Person </option>
<option> 2 Person </option>
<option> 3 Person </option>

fehlen die values, besser so

<option value="1person"> 1 Person </option>
<option value="2person"> 2 Person </option>
<option value="3person"> 3 Person </option>

Bei PHP kommt die Auswahl dann mit $_POST["Anzahl"] an


Mal ganz abgesehen von der Tatsache das Eingaben immer erst geprüft werden sollten würde ich es so schreiben:


...........................................
<form action = "Flug.php" method= "post" enctype ="text/plain" >   
<table> 
<tr> <td> Benutzername: </td> <td> <input name ="Bname" size="20" maxlength="20"> </td> </tr>   
<tr> <td> Passwort: </td> <td> <input name ="Passwort" size ="20" maxlength ="20" type="password"> </td> </tr>   
<br> 
<input type= "radio" name="klasse" value ="Economy" /> Economy Class <br>   
<input type= "radio" name=" klasse" value ="Premium" /> Premium Class <br>   
<input type= "radio" name=" klasse" value ="Business" /> Business Class <br>   
<input type= "radio" name=" First" value ="First" /> First Class <br>   
<h2> Anzahl der Personen </h2> 
<select name ="Anzahl" size ="1">   
<option value="1"> 1 Person </option>   
<option value="2"> 2 Person </option>   
<option value="3"> 3 Person </option>   
</select> 
<input type ="submit" value="Absenden" />   
<?php 
$Economy = 100; 
$Premium = 150; 
$Business = 200; 
$First = 250;
if(!isset($_POST["First"]) or $_POST["First"] != "First")  
{
$First = 0;
}
if (isset($_POST ['klasse']) && $_POST ['klasse'] == "Economy")  
{
$preis = $Economy*$_POST["Anzahl"]+$First;  
}elseif (isset($_POST ['klasse']) && $_POST ['klasse'] == "Premium")  
{
$preis = $Premium*$_POST["Anzahl"]+$First;  
}elseif (isset($_POST ['klasse']) && $_POST ['klasse'] == "Business")  
{
$preis = $Business*$_POST["Anzahl"]+$First;  
}
echo "Ihr Gesamtpreis beträgt: $preis";  
Member: maretz
maretz Jun 21, 2017 at 10:26:02 (UTC)
Goto Top
Moin (oder um es mit den Worten von Penny zu sagen: Schatz!),

erstmal sind wir hier nicht die Hausaufgabenhilfe die dir Lösungen sagt. Höchstens den Weg dazu die Aufgabe zu lösen, aber das umsetzen musst du schon machen. Dann: Schau doch mal bitte deine Werte an -
$Gesamtpreis = 0€
-> wie möchtest du denn bitte damit rechnen? Für deinen Rechner kannst du auch schreiben $Gesamtpreis = 0Kojumbel oder 0Euro -> für deinen Rechner is das in dem Moment keine Zahl mehr sondern ein String (nein, geh bitte jetzt nicht zum Schrank mit der Unterwäsche, DAS is was anderes!). Und somit möchtest du das dein Rechner Zahlen und Strings addiert -> wäre also eine Anweisung wie "$Gesamt = hallo + 17 *2; -> wundert dich das der da nix sinnvolles rauswirft?

Fang damit schon mal an....

Wenn du dann noch mal z.B. SelfHTML dazu nimmst und guckst wie du dein Select-Feld machst (option value="xyz"....) dann merkst du das du dir deine IF-Abfragen in die Haare schmieren kannst -> brauchst du nicht. Dann guck auch gleich auf der Seite noch mal nach Checkboxen - insbesondere warum es sowas gibt wie checkbox .... name="abc" -> dann wirfst du nämlich gleich noch mal die anderen IF's raus... am Ende ist dein PHP-Code ggf. noch 5-6 Zeilen lang...
Member: mrcljnff
mrcljnff Jun 21, 2017 at 10:32:29 (UTC)
Goto Top
Niemand soll mir meine "Hausaufgaben" machen, wie gesagt ich hab alles soweit gemacht aber komme nicht weiter. Die Form Action dass es mein html dokument selber nimmt fehlt mir auch noch aber ich weiß nicht wie ich den php code im dokument auslesen lasse. Es soll alles in dem dokument berechnet werden.
Member: kochi09
kochi09 Jun 21, 2017 at 11:41:02 (UTC)
Goto Top
Also wenn Du bei beim form-Tag kein action-Attribut einträgst wird das Formular automatisch an die gleiche Datei versendet. Die Datei muss als .php gespeichert werden. Mit einer html-Endung wird der PHP-Code nicht interpretiert.

Methode post oder get bestimmen dann wie Du die gesendeten Daten wieder ausliest.

Beispiel:

if(isset($_POST['feld'] && $_POST['feld'] !='')
{
echo $_POST['feld'];
}else{

echo '<form method="post" name="testform">';
echo '<input type="text" name="feld">';
echo '<input type="submit" value="senden">';
echo '</form>';

  1. Soll der Wert im Formular stehen?

echo '<form method="post" name="testform">';
echo '<input type="text" name="feld"';
if(isset($_POST['feld'] && $_POST['feld'] !='')
{
echo ' value="'.$_POST['feld'].'"';
}
echo '>';
echo '<input type="submit" value="senden">';
echo '</form>';

Ich hoffe, das hilft etwas face-wink
Member: mrcljnff
mrcljnff Jun 21, 2017 at 13:59:40 (UTC)
Goto Top
hallo, danke für die schnelle Antwort.
Leider soll es die Flug.php Datei gar nicht geben, sondern den PHP Code im HTML Code selber nehmen.
Member: mrcljnff
mrcljnff Jun 21, 2017 at 14:01:00 (UTC)
Goto Top
Wenn ich deinen Code nehme, baut meine Hompage ein zusätzliches Feld mit Absenden ein und berechnet nichts.
Member: kochi09
kochi09 Jun 21, 2017 at 14:56:08 (UTC)
Goto Top
Das war ja auch nur ein Beispiel. Wichtig ist, dass die Dateiendung .php ist. Da kann ruhig HTML und php gemischt sein.

Und lass das action im form-Tag weg, dann sendet das Formular die Daten immer an sich selbst wie Du das wolltest.