• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Fehler bei der Ausgabe von Formulardaten

Status
Für weitere Antworten geschlossen.

emc991

Neues Mitglied
:shock:
Ich bin total geschockt! Ich wollte eines Abends einen code schreiben, um für mein Browsergame ein (etwas ähnliches wie ein charakter) Juwel bestimmen. Also hab ich angefangen... Ziemlich n00b-mäßig also alles mit if und nem Post-Formular.
so sah meine test.php aus:
Code:
<?
session_start();
include 'logged.php';
include 'head.php';
?>
<form method="POST" action="test2.php">
<p>
Frage 1:<br>
Wenn du die Wahl hättest zwischen Macht und Kraft, wie würdest du dich 
entscheiden?<br>
<select size="1" name="f1">
<option value="2">Macht</option>
<option value="-1">Kraft</option>
<option selected value="0">Gar nicht</option>
</select></p>
<p>
Frage 2:<br>
Deine Königin befielt dir, dich zu bewaffnen. Welche Waffen würdest du als <br>
Erstwaffe wählen?<br>
<select size="1" name="f2">
<option value="1">Langschwert</option>
<option value="-1">Kurzschwert</option>
<option value="2">Eyrischer Kampfstab</option>
<option value="-1">Übungsstab (ohne Klingen)</option>
<option value="-1">Kampfmesser</option>
<option selected value="0">Axt</option>
</select></p>
<p>
Frage 3:<br>
Welche Zweitwaffe würdest du mitnehmen?<br>
<select size="1" name="f3">
<option value="0">Dolch</option>
<option value="2">Pfeil und Bogen</option>
<option selected value="0">Kampfmesser</option>
<option value="-2">Keine</option>
</select></p>
<p>
Frage 4:<br>
Du wirst auf fremdem Grund und Boden beklaut. Was tust du?<br>
<select size="1" name="f4">
<option value="-1">Ich verfolge den Dieb und verlange mein Gold zurück</option>
<option value="1" selected>Ich Verfolge den Dieb und töte ihn auf offener Straße
</option>
<option value="2">Ich zerstöre seinen Geisteszustand durch die Kunst</option>
<option value="3">Ich webe ein verworrenes Netz, dass den Dieb tötet</option>
<option value="-2">Ich gehe zur Teretoriumskönigin und klage den Mann an
</option>
</select></p>
<p>
Frage 5:<br>
Deine Königin wird in deiner Gegenwart angegriffen. Was tust du?<br>
<select size="1" name="f5">
<option selected value="0">Ich bringe sie zu einer Heilerin</option>
<option value="1">Ich töte den Angreifer, bevor ich meiner Königin helfe
</option>
<option value="2">Ich schaue mir die Verletzungen an und töte den Angreifer
</option>
<option value="-1">Ich wende mich an den Haushofmeister</option>
<option value="-1">Ich nehme meine Königin und verschwinde</option>
</select></p>
<p>
Frage 6:<br>
Du siehst, wie ein Dieb einen Laden in deinem Territorium ausraubt. was tust du?<br>
<select size="1" name="f6">
<option value="3">Ihn sofort töten</option>
<option value="-2">Ihn zur Rede stellen</option>
<option value="0">Ihn zu einem fairen Kampf herausfordern</option>
<option value="0">Ihm die Sachen abermals klauen und dem Laden zurück geben.
</option>
<option selected value="0">Ihn zur Königin bringen, damit sie ihn bestraft
</option>
</select></p>
<p>
Frage 7:<br>
Du stehst auf einem Schlachtfeld und hast keine Waffe mehr. Was würdest du tun?<br>
<select size="1" name="f7">
<option value="-2">Ich stehle eine Waffe eines Gegners</option>
<option selected value="0">Ich nehme die waffe eines gefallenen Bruders / einer gefallenen Schwester
</option>
<option value="+2">Ich suche nach meiner Waffe und wehre Angriffe mit dem Juwel ab
</option>
<option value="0">Ich ziehe mich zurück und besorge mir eine neue Waffe, bevor ich wieder erscheine
</option>
</select></p>
<p>
Frage 8:<br>
Du wirst von einem Ranghöheren Krieger gefragt, welches Juwel du gerne hättest.<br>
<select size="1" name="f8">
<option value="-3">Weiß</option>
<option value="-3">Gelb</option>
<option value="-2">Tiegerauge</option>
<option value="-2">Rose</option>
<option value="-1">Aquamarin</option>
<option value="-1">Purpur</option>
<option value="0">Opal</option>
<option value="1">Grün</option>
<option value="1">Saphir</option>
<option value="2">Rot</option>
<option value="+3">Egal</option>
</select></p>
<p>
Frage 9:<br>
Wirst du den Befehlen deiner Königin gehorchen?<br>
<select size="1" name="f9">
<option value="2">Ja</option>
<option value="-2">Nein</option>
<option selected value="0">Das kommt daraus an, wie man mich behandelt!</option>
</select></p>
<p>
Frage 10:<br>
Wirst du die Entscheidung von Lorn, dem Drachenprinz, akzeptiern, selbst wenn du 
ein helles Juwel bekommst?<br>
<select size="1" name="f0">
<option value="2">Ja</option>
<option value="-2">Nein</option>
</select></p>
<br><br><input type="Submit" value="Dein Juwel!">
</form>

Also da gab es keine Probleme ich hab alles schön eingegeben.
Aber dann hab ich es an test2.php gesendet:
Code:
<?
session_start();
include 'logged.php';
include 'head.php';
$frage01 = $_POST['f1'];
$frage02 = $_POST['f2'];
$frage03 = $_POST['f3'];
$frage04 = $_POST['f4'];
$frage05 = $_POST['f5'];
$frage06 = $_POST['f6'];
$frage07 = $_POST['f7'];
$frage08 = $_POST['f8'];
$frage09 = $_POST['f9'];
$frage10 = $_POST['f0'];
$juwel = $frage01+$frage02+$frage03+$frage04+$frage05+$frage06+$frage07+$frage08+$frage09+$frage10;
//Auswertung
echo $juwel;
if($jewel==-23)
	{
	echo "Juwel = Weiß";
	}
if($jewel<-18 AND $jewel>-22)
	{
	echo "Juwel = Gelb";
	}
if($jewel<-12 AND $jewel>-17)
	{
	echo "Juwel = Tiegerauge";
	}
if($jewel<-7 AND $jewel>-11)
	{
	echo "Juwel = Rose";
	}
if($jewel < "-1" AND $jewel > "-6")
	{
	echo "Juwel = Aquamarin";
	}
if($jewel<5 AND $jewel>0)
	{
	echo "Juwel = Purpur";
	}
if($jewel < "11" AND $jewel > "6")
	{
	echo "Juwel = Opal";
	}
if($jewel<17 AND $jewel>12)
	{
	echo "Juwel = Grün";
	}
if($jewel<22 AND $jewel>18)
	{
	echo "Juwel = Saphir";
	}
if($jewel==23)
	{
	echo "Juwel = Rot";
	}
?>

Wie ihr vieleicht bemerkt habt ist es nur eine Art abfrage in "echo". Das mit dem Senden kommt erst, wenn es funktioniert.

Also könnt ihr mir bitte helfen??

danke im voraus emc991:twisted:
 
Werbung:
was ist denn dein problem? stell mal ne richtige frage bitte :-D

außer das du vielleicht nochmal alle felder prüfen solltest ob sie auch integer sind ^^
 
Mein problem

Weil Slibbo mich ja sonett nach einem Problem gefragt hat, habe ich gemerkt, dass ich ja gar keines gepostet hatte..

Entschuldigung.

Also nachdem man in test.php alles eingetragen hat sollte in test2.php erst einmal die
Code:
if($juwel...)
   {
   echo "Du hast ein .... Juwel";
   }
-Funktion anzeigen, was für ein Juwel man bekommt... was aus einer Summe der values des Formulares berechnet wird.

Zum Beispiel:
Code:
if($jewel<-12 AND $jewel>-17)

Also wenn $jewel kleiner als -12 und größer als -17 ist dann

Code:
echo "Juwel = Tiegerauge";

Und zum überprüfen, ob es die einzelnen werter auch verrechnet habe ich oberhalb der ganzen ifs einen code gemacht:

Code:
$juwel = $frage01+$frage02+$frage03+$frage04+$frage05+$frage06+$frage07+$frage08+$frage09+$frage10;
//Auswertung
echo $juwel;

Meine Frage ist, wieso es mir nicht anzeigt, welches Juwel man hat, aber die Summe richtig berechnet!!!

sorry nochnmal wegen den letzt post Slibbo.

gruß emc991
 
Werbung:
also hier der funktionierende code

PHP:
<?
session_start();

$frage01 = (int)$_POST['f1'];
$frage02 = (int)$_POST['f2'];
$frage03 = (int)$_POST['f3'];
$frage04 = (int)$_POST['f4'];
$frage05 = (int)$_POST['f5'];
$frage06 = (int)$_POST['f6'];
$frage07 = (int)$_POST['f7'];
$frage08 = (int)$_POST['f8'];
$frage09 = (int)$_POST['f9'];
$frage10 = (int)$_POST['f0'];
$juwel = $frage01+$frage02+$frage03+$frage04+$frage05+$frage06+$frage07+$frage08+$frage09+$frage10;
//Auswertung
echo $juwel.'<br />';

if($jewel == -23)
{
	  echo "Juwel = Weiß";
}
elseif($jewel < -18 AND $jewel >= -22)
{
	  echo "Juwel = Gelb";
}
elseif($jewel < -12 AND $jewel >= -17)
{
	  echo "Juwel = Tiegerauge";
}
elseif($jewel < -7 AND $jewel >= -11)
{
	  echo "Juwel = Rose";
}
elseif($jewel < -1 AND $jewel >= -6)
{
	  echo "Juwel = Aquamarin";
}
elseif($jewel < 5 AND $jewel >= 0)
{
	  echo "Juwel = Purpur";
}
elseif($jewel < 11 AND $jewel >= 6)
{
	  echo "Juwel = Opal";
}
elseif($jewel < 17 AND $jewel >= 12)
{
	  echo "Juwel = Grün";
}
elseif($jewel < 22 AND $jewel >= 18)
{
    echo "Juwel = Saphir";
}
elseif($jewel == 23)
{
	  echo "Juwel = Rot";
}
?>

zu deinem problem du hast geschrieben
PHP:
if(){  }
if(){  }
if(){  }

// aber besser währe

if(){   }
elseif(){   }
elseif(){   }
else{   }

dann hast du so vergleichen

PHP:
if($juwel > 10 && $juwel < 16)
{
    // 11, 12, 13, 14, 15
}
elseif($juwel > 17 && $juwel < 20) //hier zwischen sind 16 und 17 volkommen unbeachtet :-D
{
    // 18, 19
}

dann hast du noch sowas geschrieben

PHP:
if($juwel > "-20" && $juwel < "-10")  
{
    // Warum stellst du variablen die integer sein sollen zwischen anführungszeichen?
}

das sollte dein problem erstmal beheben :p

Ps: brauchst dich doch nicht bei mir entschuldigen ;) *gg* hab mich nur gewundert :p
Pps: irgendwie ist mein juwel, egal was ich anklicke immer Purpur :-D
 
Das nächste mal einen aussagekräftigen Titel, sonst wird das Thema geschlossen!!!

Gruß Corvulus
 
Gut, gut

Danke erstmal...

Bei mir kommt auch Purpur raus, obwohl ich -4 oder 24 hatte... da muss noch ein Fehler im code sein.... denn er zeit IMMER Purpur an...

---
edit: Ich habe den Fehler gefunden:
So war es vorher: (siehe $juwel & $jewel)
Code:
...
$juwel = $frage01+$frage02+$frage03+$frage04+$frage05+$frage06+$frage07+$frage08+$frage09+$frage10;
//Auswertung
echo $juwel.'<br />';

if($jewel == -23)
{
      echo "Juwel = Weiß";
}
...
So ist es richtig(jetzt):
Code:
...
$jewel = $frage01+$frage02+$frage03+$frage04+$frage05+$frage06+$frage07+$frage08+$frage09+$frage10;
//Auswertung
echo $jewel.'<br />';

if($jewel == -23)
{
      echo "Juwel = Weiß";
}
...

Weil $jewel nicht existiert hat war es natürlich immer "0" also immer im Bereich von Purpur.
PS: Mein Juwel ist Saphir :p
edit-end
----
Muss man nochmal durch checken

danke, dass du mir geholfen hast

@Corvulus: Sorry, ich mach es nicht mehr! Versprochen!

gruß emc991
 
Zuletzt bearbeitet:
Werbung:
Status
Für weitere Antworten geschlossen.
Zurück
Oben