Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » PHP Formular, Hilfe! » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Zum Ende der Seite springen PHP Formular, Hilfe!
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Jane.
Grünschnabel


Dabei seit: 15.10.2014
Beiträge: 2

PHP Formular, Hilfe! Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo zusammen,

ich habe ein Problem bei der Erstellung eines Formulars mit PHP. Eigentlich habe ich alles gemacht, aber ich bekomme einfach keine Ausgabe! Ich brauche dringend Hilfe.

Die Aufgabenstellung lautet wie folgt:

Eine Omnibusgesellschaft berechnet für Fahrscheine 28 Cent pro Kilometer. Der Fahrgast gibt auf der Internetseite des Unternehmens die Fahrtstrecke in km an und wählt zwischen drei Tarifklassen:
Normaltarif, Schüler, Kind.
Für Schüler gibt es 25% und für Kinder 30% Ermäßigung.

Weitere Informationen:
- Datenfeld Strecke soll geprüft werden, ob dieses numerisch ist.
- Bei einer Strecke von >= 20 km beträgt der kmPreis 25 Cent.
- Bei Auswahl des Tarifs Schüler soll zusätzlich der variable Text: "25% Ermäßigung" erscheinen.
- Bei Auswahl des Tarifs Kind soll zusätzlich der variable Text: "30% Ermäßigung" erscheinen.

Es sollen folgende Ausgaben erfolgen:
- eingegebene Fahrtstrecke
- kmPreis
- berechneter Fahrpreis
- Variabler Text



Mein "selbstgeschriebenes" Programm sind bis jetzt noch so aus:
<html>
<head>
<title>Fahrpreis</title>
</head>

<body>

<form>


<p><input type="radio" name="tarif" value="normal" /> Normaltarif</p>
<p><input type="radio" name="tarif" value="schueler" /> Schülertarif</p>
<p><input type="radio" name="tarif" value="kind"/> Kindertarif</p>
Bitte geben Sie die Streckenlänge an: <br>
<p><input name="strecke" size="10" maxlength="15" value="" />
<?php echo $_POST['strecke'];?> in km</p>
<p><input type="submit" value="Senden" /></p>
</form action="" method="post">

<?php
$preisn=0.28;
$preisr=0.25;
$preiss=0.28*0.75;
$preisk=0.28*0.7;

if (is_numeric($_POST['strecke']))
{
$gesamtpreis=$preis*$_POST['strecke'];

if (($_POST['tarif']=='normal') and ($_POST['strecke']<20))
{
$gesamtpreis=$preisn*$_POST['strecke'];
}

elseif (($_POST['tarif']=='normal') and ($_POST['strecke']>=20))
{
$gesamtpreis=$preisr*$_POST['strecke'];
}

elseif ($_POST['tarif']=='schueler')
{
$gesamtpreis=$preiss*$_POST['strecke'];
$text='25% Ermäßigung';
}

elseif ($_POST['tarif']=='kind')
{
$gesamtpreis=$preisk*$_POST['strecke'];
$text='30% Ermäßigung';

}

else {echo 'Bitte wählen Sie Ihren Tarif aus.';}
}

$kmpreis=($gesamtpreis)/($_POST['strecke']);

echo '<p>Bei einer Fahrtstrecke von '.$_POST['strecke'].' km ergibt sich bei einem
Kilometerpreis von '.$kmpreis.' der Gesamtpreis von '.$gesamtpreis.'</p>';

echo "Sie erhalten $text";


?>

</body>
</html>

Mir ist klar, dass mein variabler Text nicht variabel ist aber das ist glaub ich noch mein kleinstes Problem. Was hab ich falsch gemacht? unglücklich
11.11.2014 16:57 Jane. ist offline Beiträge von Jane. suchen Nehmen Sie Jane. in Ihre Freundesliste auf
Karlito Karlito ist männlich
Kaiser


Dabei seit: 11.04.2011
Beiträge: 1.461

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo Jane,

dein Fehler ist, dass du die Attribute von Form falsch gesetzt hast. Die müssen in das öffnende Tag und nicht in das schließenden. Alles andere habe ich mir noch nicht angeschaut. Gern kannst Du hier noch mal fragen stellen, wenn es noch weitere Probleme gibt.

Hier noch mal dein Quelltext (der Fehler befindet sich in Zeile 18):
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
<html>
<head>
<title>Fahrpreis</title>
</head>

<body>

<form>


<p><input type="radio" name="tarif" value="normal" /> Normaltarif</p>
<p><input type="radio" name="tarif" value="schueler" /> Schülertarif</p>
<p><input type="radio" name="tarif" value="kind"/> Kindertarif</p>
Bitte geben Sie die Streckenlänge an: <br>
<p><input name="strecke" size="10" maxlength="15" value="" />
<?php echo $_POST['strecke'];?> in km</p>
<p><input type="submit" value="Senden" /></p>
</form action="" method="post">

<?php
$preisn=0.28;
$preisr=0.25;
$preiss=0.28*0.75;
$preisk=0.28*0.7;

if (is_numeric($_POST['strecke']))
{
$gesamtpreis=$preis*$_POST['strecke'];

if (($_POST['tarif']=='normal') and ($_POST['strecke']<20))
{
$gesamtpreis=$preisn*$_POST['strecke'];
}

elseif (($_POST['tarif']=='normal') and ($_POST['strecke']>=20))
{
$gesamtpreis=$preisr*$_POST['strecke'];
}

elseif ($_POST['tarif']=='schueler')
{
$gesamtpreis=$preiss*$_POST['strecke'];
$text='25% Ermäßigung';
}

elseif ($_POST['tarif']=='kind')
{
$gesamtpreis=$preisk*$_POST['strecke'];
$text='30% Ermäßigung';

}

else {echo 'Bitte wählen Sie Ihren Tarif aus.';}
}

$kmpreis=($gesamtpreis)/($_POST['strecke']);

echo '<p>Bei einer Fahrtstrecke von '.$_POST['strecke'].' km ergibt sich bei einem
Kilometerpreis von '.$kmpreis.' der Gesamtpreis von '.$gesamtpreis.'</p>';

echo "Sie erhalten $text";


?>

</body>
</html>


Hier die Korrektur:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
<html>
<head>
<title>Fahrpreis</title>
</head>

<body>

<form action="" method="post">



<p><input type="radio" name="tarif" value="normal" /> Normaltarif</p>
<p><input type="radio" name="tarif" value="schueler" /> Sch&uuml;lertarif</p>
<p><input type="radio" name="tarif" value="kind"/> Kindertarif</p>
Bitte geben Sie die Streckenl&auml;nge an: <br>
<p><input name="strecke" size="10" maxlength="15" value="" /> in km</p>
<p><input type="submit" value="Senden" /></p>
</form>

<?php
$preisn=0.28;
$preisr=0.25;
$preiss=0.28*0.75;
$preisk=0.28*0.7;

if (is_numeric($_POST['strecke']))
{
$gesamtpreis=$preis*$_POST['strecke'];

if (($_POST['tarif']=='normal') and ($_POST['strecke']<20))
{
$gesamtpreis=$preisn*$_POST['strecke'];
}

elseif (($_POST['tarif']=='normal') and ($_POST['strecke']>=20))
{
$gesamtpreis=$preisr*$_POST['strecke'];
}

elseif ($_POST['tarif']=='schueler')
{
$gesamtpreis=$preiss*$_POST['strecke'];
$text='25% Ermäßigung';
}

elseif ($_POST['tarif']=='kind')
{
$gesamtpreis=$preisk*$_POST['strecke'];
$text='30% Ermäßigung';

}

else {echo 'Bitte wählen Sie Ihren Tarif aus.';}
}

$kmpreis=($gesamtpreis)/($_POST['strecke']);

echo '<p>Bei einer Fahrtstrecke von '.$_POST['strecke'].' km ergibt sich bei einem
Kilometerpreis von '.$kmpreis.' der Gesamtpreis von '.$gesamtpreis.'</p>';

echo "Sie erhalten $text";


?>

</body>
</html>


Gruß,

Karlito
12.11.2014 07:30 Karlito ist offline E-Mail an Karlito senden Beiträge von Karlito suchen Nehmen Sie Karlito in Ihre Freundesliste auf
Jane.
Grünschnabel


Dabei seit: 15.10.2014
Beiträge: 2

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

suuuper danke dir!

Aber irgenwie funktioniert's noch immer nicht so wie ich will. :/
Ich bekomme jetzt zwar eine Ausgabe, aber ich habe noch folgende Probleme:

Die Berechnungen macht das Programm teilweise richtig! ABER zum einen wird nicht geprüft ob das Datenfeld "Strecke" numerisch ist und zum anderen bekomme beim Aufrufen der PHP Seite eine Fehlermeldung: "Warning: Division by zero in F:\xampp\htdocs\hausaufgaben\fahrpreis1.php on line 56"

also irgendwas ist da faul, aber ich versteh diese verschachtelten if-Befehle nicht so richtig. Vermutlich hab ich da mal wieder was falsch gemacht.

Außerdem weiß ich nicht wie man so einen variable Text hinzufügen kann.

Ich hoffe ich verlang nicht zu viel unglücklich

Danke im Voraus. smile
12.11.2014 20:02 Jane. ist offline Beiträge von Jane. suchen Nehmen Sie Jane. in Ihre Freundesliste auf
Karlito Karlito ist männlich
Kaiser


Dabei seit: 11.04.2011
Beiträge: 1.461

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo Jane,

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
<html>
<head>
<title>Fahrpreis</title>
</head>

<body>

<form action="" method="post">



<p><input type="radio" name="tarif" value="normal" /> Normaltarif</p>
<p><input type="radio" name="tarif" value="schueler" /> Sch&uuml;lertarif</p>
<p><input type="radio" name="tarif" value="kind"/> Kindertarif</p>
Bitte geben Sie die Streckenl&auml;nge an: <br>
<p><input name="strecke" size="10" maxlength="15" value="" /> in km</p>
<p><input type="submit" value="Senden" /></p>
</form>

<?php
$preisn=0.28;
$preisr=0.25;
$preiss=0.28*0.75;
$preisk=0.28*0.7;

if (is_numeric($_POST['strecke']) && strlen($_POST['tarif']) != 0)
{
	//$gesamtpreis=$preis*$_POST['strecke']; //Warum? Die Variable $preis existiert doch gar nicht
	$text=""; //Initialisierung

	if (($_POST['tarif']=='normal') and ($_POST['strecke']<20))
	{
		$gesamtpreis=$preisn*$_POST['strecke'];
	}

	elseif (($_POST['tarif']=='normal') and ($_POST['strecke']>=20))
	{
		$gesamtpreis=$preisr*$_POST['strecke'];
	}

	elseif ($_POST['tarif']=='schueler')
	{
		$gesamtpreis=$preiss*$_POST['strecke'];
		$text='25% Erm&auml;&szlig;igung';
	}

	elseif ($_POST['tarif']=='kind')
	{
		$gesamtpreis=$preisk*$_POST['strecke'];
		$text='30% Erm&auml;&szlig;igung';

	}

	else {echo 'Bitte w&auml;hlen Sie Ihren Tarif aus.';}

	$kmpreis = 0;
	if ($_POST['strecke']!= 0)
	{
		$kmpreis=($gesamtpreis)/($_POST['strecke']);
	}


	if (strlen($_POST['strecke']) != 0)
	{
		echo '<p>Bei einer Fahrtstrecke von '.$_POST['strecke'].' km ergibt sich bei einem
			Kilometerpreis von '.$kmpreis.' der Gesamtpreis von '.$gesamtpreis.'</p>';


		if (strlen($text) != 0)
		{
			echo "Sie erhalten $text";
		}
	}
}
else 
{
	if (strlen($_POST['strecke']) != 0)
	{
		echo "<p>Die Streckenangabe muss eine Zahl sein.</p>";
	}
	if (strlen($_POST['tarif']) == 0)
	{
		echo "<p>Bitte w&auml;len Sie einen Tarif.</p>";
	}
}

?>

</body>
</html>


Leider gerade keine Zeit für Erklärungen. Bitte gerne nachfragen.

Gruß,

Karlito
13.11.2014 18:00 Karlito ist offline E-Mail an Karlito senden Beiträge von Karlito suchen Nehmen Sie Karlito in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Informatiker Board » Themengebiete » Praktische Informatik » PHP Formular, Hilfe!