webForumDet fria alternativet

strtolower i quiz

PHP

9 svar · 566 visningar · startad av nickepickepö

Medlem sedan nov. 20068 inlägg
Frågan#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?

Medlem 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.

Medlem sedan nov. 20068 inlägg
#3

vilken manual?

Medlem sedan nov. 20041 740 inlägg
#4

PHP-manualen, såklart. :)

Medlem 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

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...

Medlem sedan apr. 2006244 inlägg
#7
$answer = strtolower($answer);
$correct = strtolower($correct);
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

Medlem 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.

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++;

}

259 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)