Seite 1 von 1

Brauche Hilfe bei php-Problem...

Verfasst: 23.01.2006, 21:41
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

Verfasst: 23.01.2006, 21:57
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

Verfasst: 24.01.2006, 00:03
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.. .

Verfasst: 24.01.2006, 13:10
von feuer
Super, merci!

Werd ich gleich mach probieren...