PHP Script einem zufälligem Text zuweisen?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
absenden
aktuellen antwort
code
datei
datum
definieren
ersten antwort
ersten eingabefeld
frage
klau
meinung
murmeltier
punktestand
rand
richtigen antwort
text
url
vorname
winterschlaf
zahl
-
Guten Abend liebe Community,
ich bin gerade dabei ein kleines Ratespiel zu schreiben.
Es wird immer zufällig eine Frage ausgewählt mit entsprechenden Antworten.
Allerdings wird sowohl bei Frage 1 als auch bei Frage 2 die Antwortmöglichkeit 1 genommen, da das die erste im Quelltext ist.
Ich weis, das klingt jetzt verwirrend, daher würde ich eucht bitten, es einmal selbst zu testen:
http://schinkenmedia.de/punktekoenig/code.php
Im Quellcode ist es so angegeben, dass, wenn 1 eingegeben wurde, die Meldung kommt, dass man gewonnen hat.
Wenn man 2, 3 oder 4 eingibt, hat man verloren. Das ganze habe ich dann auf Frage 2 übertragen. Aber wenn jetzt
zufällig die Frage 2 auftaucht, wo die Lösung 2 ist, bekomme ich die "Verloren-Meldung". Ich gehe davon aus, das der Server den Code von oben nach unten (logisch ) abklappert und nicht erkennt, das der Script zu der Random-Frage Nr. 1 gehört.
Dann nimmt er automatisch den Script, der für die erste Frage vorgesehen ist.
Hier der Code von dem Spiel:
<?php session_set_cookie_params(10800); session_start(); ?> <center> <b> <h4> Wer wird Punktekönig? </h4> </b> <br /> <br /> <br /> Tippe die Zahl vor der deiner Meinung richtigen Antwort ein und klicke auf "Daten absenden". <br /> <br /> <br /> <br /> <?php $a=$_GET['eingabefeld1']; //Frage1 $text[1]='Wie heisst Obama mit Vornamen? <br /> <br /> 1: Barack <br /> 2: Klaus <br /> 3: Hubertus <br /> 4: Ole <br /> <br /> <form action="code.php" method="get"> <input type="text" name="eingabefeld1"> </input> <input type="submit"> </input> </form>'; if($a==1) { echo 'Gewonnen! <a href="http://schinkenmedia.de/punktekoenig/code.php">Klicke hier für die nächste Frage!</a>'; } if($a==2) { echo 'Verloren! <a href="http://schinkenmedia.de/punktekoenig/code.php">Klicke hier für die nächste Frage!</a>'; } if($a==3) { echo 'Verloren! <a href="http://schinkenmedia.de/punktekoenig/code.php">Klicke hier für die nächste Frage!</a>'; } if($a==4) { echo 'Verloren! <a href="http://schinkenmedia.de/punktekoenig/code.php">Klicke hier für die nächste Frage!</a>'; } $datei = fopen("counter.txt","r+"); $counterstand = fgets($datei, 10); if($counterstand == "") { $counterstand = 0; } if($a==1) { $counterstand++; rewind($datei); fwrite($datei, $counterstand); $_SESSION['counter_ip'] = true; } if($a==2) { file_put_contents('counter.txt', ''); } if($a==3) { file_put_contents('counter.txt', ''); } if($a==4) { file_put_contents('counter.txt', ''); } fclose($datei); if($a==1) { exit; } if($a==2) { exit; } if($a==3) { exit; } if($a==4) { exit; } //Frage2 $text[2]='Wie oft atmet ein Murmeltier im Winterschlaf? <br /> <br /> 1: 20 mal <br /> 2: 2 mal <br /> 3: 1 mal <br /> 4: 10 mal <br /> <br /> <form action="code.php" method="get"> <input type="text" name="eingabefeld1"> </input> <input type="submit"> </input> </form>'; if($a==1) { echo 'Verloren! <a href="http://schinkenmedia.de/punktekoenig/code.php">Klicke hier für die nächste Frage!</a>'; } if($a==2) { echo 'Gewonnen! <a href="http://schinkenmedia.de/punktekoenig/code.php">Klicke hier für die nächste Frage!</a>'; } if($a==3) { echo 'Verloren! <a href="http://schinkenmedia.de/punktekoenig/code.php">Klicke hier für die nächste Frage!</a>'; } if($a==4) { echo 'Verloren! <a href="http://schinkenmedia.de/punktekoenig/code.php">Klicke hier für die nächste Frage!</a>'; } $datei = fopen("counter.txt","r+"); $counterstand = fgets($datei, 10); if($counterstand == "") { $counterstand = 0; } if($a==2) { $counterstand++; rewind($datei); fwrite($datei, $counterstand); $_SESSION['counter_ip'] = true; } if($a==1) { file_put_contents('counter.txt', ''); } if($a==3) { file_put_contents('counter.txt', ''); } if($a==4) { file_put_contents('counter.txt', ''); } fclose($datei); if($a==1) { exit; } if($a==2) { exit; } if($a==3) { exit; } if($a==4) { exit; } //Frage3 //Zufallsausgabe $key = rand(1,2); echo $text[$key]; ?> <br /> <br /> <br /> <br /> <br /> <b> <p> Dein Punktestand: </p> </b> <?php echo $counterstand; ?> </center>
Ich freue mich über hilfreiche Antworten.
MfG -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Du musst $a vor jeder Antwortüberprüfung neu definieren. Und zwar mit der aktuellen Antwort.
-
drafed-map schrieb:
Du musst $a vor jeder Antwortüberprüfung neu definieren. Und zwar mit der aktuellen Antwort.
Bei mir sieht jetzt eine Frage so aus:
$text[1]='Wie heisst Obama mit Vornamen? <br /> <br /> 1: Barack <br /> 2: Klaus <br /> 3: Hubertus <br /> 4: Ole <br /> <br /> <form action="code.php" method="get"> <input type="text" name="eingabefeld1"> </input> <input type="submit"> </input> </form>'; $a=$_GET['eingabefeld1']; if($a==1) { echo 'Gewonnen! <a href="http://schinkenmedia.de/punktekoenig/code.php">Klicke hier für die nächste Frage!</a>'; } if($a==2) { echo 'Verloren! <a href="http://schinkenmedia.de/punktekoenig/code.php">Klicke hier für die nächste Frage!</a>'; } if($a==3) { echo 'Verloren! <a href="http://schinkenmedia.de/punktekoenig/code.php">Klicke hier für die nächste Frage!</a>'; } if($a==4) { echo 'Verloren! <a href="http://schinkenmedia.de/punktekoenig/code.php">Klicke hier für die nächste Frage!</a>'; } $datei = fopen("counter.txt","r+"); $counterstand = fgets($datei, 10); if($counterstand == "") { $counterstand = 0; } if($a==1) { $counterstand++; rewind($datei); fwrite($datei, $counterstand); $_SESSION['counter_ip'] = true; } if($a==2) { file_put_contents('counter.txt', ''); } if($a==3) { file_put_contents('counter.txt', ''); } if($a==4) { file_put_contents('counter.txt', ''); } fclose($datei); if($a==1) { exit; } if($a==2) { exit; } if($a==3) { exit; } if($a==4) { exit; }
HAt aber bisher nichts gebracht. -
Vor der Überprüfung der ersten Antwort definierst du $a, aber vor den anderen füllst du $a nicht wieder mit neuen Werten. Deswegen ist $a immer das, das im ersten Eingabefeld eingetragen wurde.
-
drafed-map schrieb:
Vor der Überprüfung der ersten Antwort definierst du $a, aber vor den anderen füllst du $a nicht wieder mit neuen Werten. Deswegen ist $a immer das, das im ersten Eingabefeld eingetragen wurde.
Ich habe nun für die 2. Frage eine Variable b festgelegt, jetzt sieht es so aus:
<?php session_set_cookie_params(10800); session_start(); ?> <center> <b> <h4> Wer wird Punktekönig? </h4> </b> <br /> <br /> <br /> Tippe die Zahl vor der deiner Meinung richtigen Antwort ein und klicke auf "Daten absenden". <br /> <br /> <br /> <br /> <?php //Frage1 $text[1]='Wie heisst Obama mit Vornamen? <br /> <br /> 1: Barack <br /> 2: Klaus <br /> 3: Hubertus <br /> 4: Ole <br /> <br /> <form action="code.php" method="get"> <input type="text" name="eingabefeld1"> </input> <input type="submit"> </input> </form>'; $a=$_GET['eingabefeld1']; if($a==1) { echo 'Gewonnen! <a href="http://schinkenmedia.de/punktekoenig/code.php">Klicke hier für die nächste Frage!</a>'; } if($a==2) { echo 'Verloren! <a href="http://schinkenmedia.de/punktekoenig/code.php">Klicke hier für die nächste Frage!</a>'; } if($a==3) { echo 'Verloren! <a href="http://schinkenmedia.de/punktekoenig/code.php">Klicke hier für die nächste Frage!</a>'; } if($a==4) { echo 'Verloren! <a href="http://schinkenmedia.de/punktekoenig/code.php">Klicke hier für die nächste Frage!</a>'; } $datei = fopen("counter.txt","r+"); $counterstand = fgets($datei, 10); if($counterstand == "") { $counterstand = 0; } if($a==1) { $counterstand++; rewind($datei); fwrite($datei, $counterstand); $_SESSION['counter_ip'] = true; } if($a==2) { file_put_contents('counter.txt', ''); } if($a==3) { file_put_contents('counter.txt', ''); } if($a==4) { file_put_contents('counter.txt', ''); } fclose($datei); if($a==1) { exit; } if($a==2) { exit; } if($a==3) { exit; } if($a==4) { exit; } ?> //Frage2 <?php $text[2]='Wie oft atmet ein Murmeltier im Winterschlaf? <br /> <br /> 1: 20 mal <br /> 2: 2 mal <br /> 3: 1 mal <br /> 4: 10 mal <br /> <br /> <form action="code.php" method="get"> <input type="text" name="eingabefeld1"> </input> <input type="submit"> </input> </form>'; $b=$_GET['eingabefeld1']; if($b==1) { echo 'Verloren! <a href="http://schinkenmedia.de/punktekoenig/code.php">Klicke hier für die nächste Frage!</a>'; } if($b==2) { echo 'Gewonnen! <a href="http://schinkenmedia.de/punktekoenig/code.php">Klicke hier für die nächste Frage!</a>'; } if($b==3) { echo 'Verloren! <a href="http://schinkenmedia.de/punktekoenig/code.php">Klicke hier für die nächste Frage!</a>'; } if($b==4) { echo 'Verloren! <a href="http://schinkenmedia.de/punktekoenig/code.php">Klicke hier für die nächste Frage!</a>'; } $datei = fopen("counter.txt","r+"); $counterstand = fgets($datei, 10); if($counterstand == "") { $counterstand = 0; } if($b==2) { $counterstand++; rewind($datei); fwrite($datei, $counterstand); $_SESSION['counter_ip'] = true; } if($b==1) { file_put_contents('counter.txt', ''); } if($b==3) { file_put_contents('counter.txt', ''); } if($b==4) { file_put_contents('counter.txt', ''); } fclose($datei); if($b==1) { exit; } if($b==2) { exit; } if($b==3) { exit; } if($b==4) { exit; } //Frage3 //Zufallsausgabe $key = rand(1,2); echo $text[$key]; ?> <br /> <br /> <br /> <br /> <br /> <b> <p> Dein Punktestand: </p> </b> <?php echo $counterstand; ?> </center>
Irgendwie klappt es trotzdem nicht...
EDIT: Ich habe nun auch ein neues Eingabefeld definiert. Nun klappt es. Danke für deine Hilfe .
Beitrag zuletzt geändert: 14.1.2012 22:45:22 von schinkenmedia -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage