Brauche Hilfe bei php-Problem...

Multimedia pur!
Antworten
feuer
Profi-Abenteurer
Profi-Abenteurer
Beiträge: 958
Registriert: 11.07.2002, 11:36
Wohnort: Berlin
Kontaktdaten:

Brauche Hilfe bei php-Problem...

Beitrag von feuer »

An alle, die sich mit php- oder ähnlichem etwas auskennen - ich brauche eure Hilfe!!

Ich arbeite gerade an einer Webseite, für die folgendes Feature benötige:

Der Besucher öffnet eine Seite und muss ein Formular mit zwei Feldern ausfüllen:
1. Feld: Größe in cm.
2. Feld: Gewicht in kg.

Nachdem der Besucher auf "Senden" klickt, sollte anhand einer vorgegebenen Formel etwas ausgerechnet werden und das Ergebnis dann auf einer eigenen Seite stehen.

Dazu kommt, wenn das Resultat sagen wir zwischen 5 und 10 ist, soll eine eigene Seite aufgerufen werden (zuerst das Ergebnis und dann die Bedeutung, alles auf einer Seite)

Wenn das Ergebnis zwischen 10 und 15 ist, soll ebenfalls eine eigene Seite aufgerufen werden...

Wenn das Ergebnis zwischen 15 und...

usw.


Hat da jemand eine Ahnung oder Hinweis, wie ich das am besten mache? Ich habe leider überhaupt keine Erfahrung mit php oder java oder ähnlichem... ich entwerfe zwar seit Jahren Webseiten, bei der technischen Umsetzung stecke ich allerdings noch in den Kinderschuhen...

Jegliche Hilfe ist erwünscht!

Vielen Dank fürs Zeit nehmen und Lesen,
Feuer
Dr. Zoidberg: "Now, I'm not saying that professor Farnsworth is old, but if you consider his age, he's likely to die soon!"
[ZENSIERT]
Adventure-Gott
Adventure-Gott
Beiträge: 4575
Registriert: 13.07.2004, 14:04
Wohnort: Da wo muss
Kontaktdaten:

Beitrag von [ZENSIERT] »

jo 8)

Mit PHP kannst du das wie folgt lösen:
Erstmal die Seite mit dem Formular (seite1.php):

Code: Alles auswählen

<form action="seite2.php" method="POST">
Gewicht: <input type="text" name="Gewicht" /><br />
Gr&ouml;&szlig;e: <input type="text" name="Groesse" /><br />
<input type="submit" value="Los!" />
</form>
Und die Auswertungsseite (seite2.php):

Code: Alles auswählen

<?php

// seite2.php

$result = ($_POST['Gewicht']+$_POST['Groesse']); # Hier halt die Formel einsetzen
if(($result > 5) && ($result < 10)) header("Location:eineseite.php");
elseif(($result > 10) && ($result < 15)) header("Location:andereseite.php");
elseif(($result > 15) && ($result < 20)) header("Location:nocheineseite.php");
else header("Location:fehler.php");
?>
Je nach Ergebnis wird dann eineseite.php, andereseite.php, nocheineseite.php... aufgerufen
Es heißt, Leute mit den originellsten Nicknames schreiben die besten Beiträge

Ausnahmen bestätigen die Regel
_________________
<Problem> Weil du denken kannst.

Zuletzt bearbeitet von [ZENSIERT] am 16.07.1759, 16:19, insgesamt 54743869-mal bearbeitet
Benutzeravatar
BLiM
Komplettlösungsnutzer
Komplettlösungsnutzer
Beiträge: 44
Registriert: 24.06.2005, 21:39
Wohnort: HH

Beitrag von BLiM »

Sieht schon gut aus.
  1. Man kann das Formular auch mit der gleichen Seite auswerten. Dazu gibt man dem Submit-Button auch einen Namen und definiert anschliessend, dass beim Drücken von diesem, die Seite neu geladen wird. Jetzt wird am Anfang geprüft, ob Submit gedrückt wurde und leitet die entsprechende Funktion ein.
  2. Eleganter ist es, ein switch - case durchzuführen.
  3. Wichtig ist auch, zu prüfen, ob auch Zahlen eingegeben wurden, da ansonsten, das Ergebnis verfälscht wird.
  4. feuer hat geschrieben:und das Ergebnis dann auf einer eigenen Seite stehen.
    Dazu hängst du eine Variable und das Ergebnis einfach noch an den Link der neuen Seite und gibst den entsprechend in php aus. (siehe zweiter Codefetzen)
formular.php:

Code: Alles auswählen

.
.
.

<?
if($submit) {

// falls Benutzer ein Komma statt einem Punkt verwendet hat
$Gewicht = str_replace(",", ".", $Gewicht);
$Groesse = str_replace(",", ".", $Groesse);
						
	if ( is_numeric($Gewicht) && is_numeric($Groesse)) {	// prüft, ob Eingabe valide	

	$result = $Gewicht+$Groesse;	// Formel

	 switch (true):

                   case ($result>5 && $result<=10):				
                        header("Location:seite2.php?result=".$result);
                         break;

                   case ($result>10 && $result<=15):				
                         header("Location:seite3.php?result=".$result);
                         break;
                  
                   default:
                       header("Location:formular.php");				// bei unzulässigen angaben
                         break;

         	 endswitch;
	}

	else {
	
	echo "Fehler bei Eingabe: ".$Gewicht." | ".$Groesse;
	
	}

}
?>

.
.
.
.
.

<form method="post" action="<?php echo $SELF_PHP; ?>" enctype="multipart/form-data">
Gewicht: <input type="text" name="Gewicht" /><br />
Gr&ouml;&szlig;e: <input type="text" name="Groesse" /><br />
<input name="submit" type="submit" value="Los!" />
</form>

.
.
.

seite2.php

Code: Alles auswählen

<?
echo $result." Spiele umsonst!!!";
?>
Müsste so eigentlich klappen. Viel Erfolg.. .
feuer
Profi-Abenteurer
Profi-Abenteurer
Beiträge: 958
Registriert: 11.07.2002, 11:36
Wohnort: Berlin
Kontaktdaten:

Beitrag von feuer »

Super, merci!

Werd ich gleich mach probieren...
Dr. Zoidberg: "Now, I'm not saying that professor Farnsworth is old, but if you consider his age, he's likely to die soon!"
Antworten