webForumDet fria alternativet

strtolower i quiz

9 svar · 564 visningar · startad av nickepickepö

nickepickepöMedlem sedan nov. 20068 inlägg
#1

Hej
jag har ett quiz där man skriver i svaren på frågorna själv, alltså man väljer inte från olika svarsalternativ, men det blir problem om man tex skulle skriva med stora bokstäver då blir svaret fel oavsett om man stavat rätt.
jag har förstått att man kan använda strtolower för att göra om allt till små bokstäver, men får inte ihop det...
själva frågorna ligger i en html fil, svaren i en txt fil, sen jämförs det i en php-fil för att sen läggas upp i en databas...
nån som har en susning om hur jag kan göra?

GislavedMedlem sedan nov. 20041 740 inlägg
#2
if(strtolower($answer) == strtolower($correct)){
      echo "Japp"; 
} else {
       echo "Nix.";
}

Ta en titt i manualen så ser du hur strtolower används.

nickepickepöMedlem sedan nov. 20068 inlägg
#3

vilken manual?

GislavedMedlem sedan nov. 20041 740 inlägg
#4

PHP-manualen, såklart. :)

CompusaMedlem sedan jan. 20023 327 inlägg
#5

Här kan du ladda hem den i exempelvis chm-format, mycket smidigt att ha den öppen i det samtidigt som man programmerar.
http://se2.php.net/download-docs.php

nickepickepöMedlem sedan nov. 20068 inlägg
#6

tack tack, jag är ny på det här...
jag får ändå inte ihop det, alltså jag vill ju inte att det ska skrivas ut något här, som "japp" eller "nix"
jag vill bara att svaren ändras till små bokstäver..

jag kanske är på för djupt vatten...

vicMedlem sedan apr. 2006244 inlägg
#7
$answer = strtolower($answer);
$correct = strtolower($correct);
nickepickepöMedlem sedan nov. 20068 inlägg
#8

tack, nu fick jag till det på ett sätt iallafall, hade bara skrivit in koden på fel ställe innan.
i formuläret med frågorna så sparas svaren med ett värde per fråga: q1, q2, q3 osv...
så om jag skriver in denna kod i php filen så funkar det:

$_POST['q1'] = strtolower($_POST['q1']);

men då måste jag ju göra det 20 gånger om jag har tjugo frågor, det är ju inte så jobbigt iofs, men det vore ju smidigare om man kunde ändra hela tjolabaletten på en gång.. men det är det jag inte får till... ja ja

aasahMedlem sedan mars 20034 471 inlägg
#9

Om alla värden från formuläret lika lätt kan jämföras med liten bokstav så kan du skriva:

foreach($_POST as $namn => $svar)
   $_POST[$namn] =strtolower($svar);

Om det bara ska göras specifikt för frågor som börjar på q får du kolla värdet på $namn och bara göra tilldelningen om $namn startar på q.

nickepickepöMedlem sedan nov. 20068 inlägg
#10

jag gjorde så här så löste det sig...

$f = 1;
while ($f <= 100)
{
$_POST["q$f"] = ucfirst(strtolower($_POST["q$f"]));
$f++;

}

133 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)