Avatar billede webson Nybegynder
30. juni 2004 - 03:29 Der er 5 kommentarer og
1 løsning

Tal virker, men bogstaver gør ikke

et spørgsmål / svar script:  men kun tal virker som svar?
eks: hvis svaret ikke er et tal, men et ord får jeg output You got it wrong! selvom svaret er rigtigt! (why is this ?)



$right="You are very vise my freind... now try this one ?";
$wrong="You got it wrong! ...try again or explore the map";
if(isset($_POST['answer']))
{
  $answer=$_POST['answer'];
  $ID=$_POST['ID'];
  $answer=strtoupper($answer);
  $getanswer="SELECT * from rd_riddles where riddleid='$ID'";
  $getanswer2=mysql_query($getanswer) or die(mysql_error());
  $getanswer3=mysql_fetch_array($getanswer2);
  if($answer==$getanswer3[answer])
  {
    print "$right<br>";
    $ID++;
  }
  else
  {
    print "$wrong<br>";
  }

}

  $day=date("U");
  $seedval=$day%100000;
  srand($seedval);
  $selectriddle="SELECT * from rd_riddles where riddleid >= '$ID' order by riddleid limit 1";
  $selectriddle2=mysql_query($selectriddle) or die(mysql_error());
  $selectriddle3=mysql_fetch_array($selectriddle2);
  print "<form action='$PHP_SELF' method='post'>";
  print "<input type='hidden' name='ID' value='$selectriddle3[riddleid]'>";
  print "$selectriddle3[question]<br>";
  print "<br>";
  print "<input type='text' name='answer' size='30'><br>";
  print "<input type='submit' name='submit' value='submit answer'></form>";
Avatar billede jaw Nybegynder
30. juni 2004 - 04:24 #1
Hvad mener du? Hvis der i databasen står 10 og brugeren indtaster 10 får han så fejl?
Avatar billede 7th Praktikant
30. juni 2004 - 04:24 #2
hvad er $getanswer3[answer] lig med?
Avatar billede jaw Nybegynder
30. juni 2004 - 04:39 #3
Hvis det er fordi der kan være flere svarmuligheder - altså, f.eks. både "ti" og "10", så kan du bruge:

$right="You got it right!";
$wrong="You got it wrong, Go back and try again";
if(isset($_POST['answer']))
{
  $answer=$_POST['answer'];
  $ID=$_POST['ID'];
  $answer=strtoupper($answer);
  $getanswer="SELECT * from rd_riddles where riddleid='$ID'";
  $getanswer2=mysql_query($getanswer) or die(mysql_error());
  $getanswer3=mysql_fetch_array($getanswer2);
  $dbanswer = explode(";",$getanswer3[answer]);
  for($i = 0; $dbanswer[$i] != ""; $i++) {
    if($answer == $dbanswer[$i]) {
        $korrekt = "ja";
    }
  }
  if($korrekt == "ja")
  {
    print "$right<br>";
    $ID++;
  }
  else
  {
    print "$wrong<br>";
  }
}

  $korrekt = "";
  $day=date("U");
  $seedval=$day%100000;
  srand($seedval);
  $selectriddle="SELECT * from rd_riddles where riddleid >= '$ID' order by riddleid limit 1";
  $selectriddle2=mysql_query($selectriddle) or die(mysql_error());
  $selectriddle3=mysql_fetch_array($selectriddle2);
  print "<form action='$PHP_SELF' method='post'>";
  print "<input type='hidden' name='ID' value='$selectriddle3[riddleid]'>";
  print "$selectriddle3[question]<br>";
  print "Answer:<br>";
  print "<input type='text' name='answer' size='30'><br>";
  print "<input type='submit' name='submit' value='submit answer'></form>";

I din database, skal feltet "answer" så separeres med ; så indholdet bliver:

ti;10

...så vil både "10" og "ti" være korrekte svarmuligheder... Men ved ikke om det var det du mente?
Avatar billede jaw Nybegynder
30. juni 2004 - 04:39 #4
Og en anden fejlmulighed du har når det er ord, så skal du huske at svaret i databasen SKAL være skrevet med STORE bogstaver hvis det er ord.

Så "svar" vil ikke blive godtaget, mens "SVAR" vil blive godtaget, da du bruger strtoupper for at gøre brugerens svar til store bogstaver... Forståeligt???
Avatar billede webson Nybegynder
30. juni 2004 - 13:33 #5
forstået, og det virker også :)


04:39:48 ? :)
Avatar billede jaw Nybegynder
30. juni 2004 - 14:11 #6
Ja, ja, ja... Jeg var faktisk også på vej i seng :)

Og tak for point... :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester