Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Kysely sekaisin

Jorgga [04.06.2006 22:22:22]

#

No taas tässä pommitan näil viesteil mut itsekkään en tuota toimimaan saa vaikka minkä teen mutta siis vika ilmenee kun yritetään vastata kyselyyn.
vastaa.php

<?php
$vastaus = $_GET["vastaus"];
$tt = file("kysely.txt");
$tiedosto = fopen("kysely.txt", "w");
fwrite ($tiedosto, $tt[0]);
fwrite ($tiedosto, $tt[1]);
fwrite ($tiedosto, $tt[2]);
fwrite ($tiedosto, $tt[3]);
fwrite ($tiedosto, $tt[4]);
if ($vastaus == 1) {
$tt[5] = $tt[5] + 1;
fwrite ($tiedosto, $tt[5] . "\r\n");
fwrite ($tiedosto, $tt[6] . "\r\n");
fwrite ($tiedosto, $tt[7] . "\r\n");
fwrite ($tiedosto, $tt[8] . "\r\n");
} elseif ($vastaus == "2") {
fwrite ($tiedosto, $tt[5] . "\r\n");
$tt[6] = $tt[6] + 1;
fwrite ($tiedosto, $tt[6] . "\r\n");
fwrite ($tiedosto, $tt[7] . "\r\n");
fwrite ($tiedosto, $tt[8] . "\r\n");
} elseif ($vastaus == "3") {
fwrite ($tiedosto, $tt[5] . "\r\n");
$tt[7] = $tt[7] + 1;
fwrite ($tiedosto, $tt[6] . "\r\n");
fwrite ($tiedosto, $tt[7] . "\r\n");
fwrite ($tiedosto, $tt[8] . "\r\n");
} elseif ($vastaus == "4") {
fwrite ($tiedosto, $tt[5] . "\r\n");
$tt[8] = $tt[8] + 1;
fwrite ($tiedosto, $tt[6] . "\r\n");
fwrite ($tiedosto, $tt[7] . "\r\n");
fwrite ($tiedosto, $tt[8] . "\r\n");
} else{
echo "Joku vika jossakin";
}
header ("Location: kysely.php");
?>

Tämän koodin olisi tarkoitus muuttaa vain yhtä riviä mutta jos kysely.txt on aluksi:

Mitä nyt taas?
Vaikka mitä
Jotain
Ihan outoo
EMT!!!
0
0
0
0

vastatessa kahteen kohtaan (esim nyt ensin kohtaan 3 ja sitten 2) tiedoston sisältö muuttuu:

Mitä nyt taas?
Vaikka mitä
Jotain
Ihan outoo
EMT!!!
0

1
0

Metabolix [04.06.2006 23:03:14]

#

Opettele nyt hyvä ihminen käyttämään silmukoita. Tuokin menee niin helposti, kun muutat tiedoston ($vastaus+4). riviä ja sitten silmukassa tallennat kaikki rivit uudestaan. Taas suosittelisin trim-funktiota lisäksi.

Niin ja ole ystävällinen äläkä tee koko ajan uusia aiheita. Voit jatkaa samaan niin kauan, kuin on yhä kyse kyselystä.

Jorgga [04.06.2006 23:49:27]

#

no joo mut en kyl keksinyt YHTÄÄN tapaa käyttää silmukkaa tohon ja sillee....

juha127 [05.06.2006 09:54:33]

#

EN näkisi tuossa olevan mitään ongelmaa, lisää vielä loppuun fclose() functio.
Minkälainen on on sivu josta tullaan tallennusvaiheeseen?

Metabolix [05.06.2006 11:24:58]

#

Jorgga, tee niin, kuin äsken neuvoin. Koodi menee kymmenelle riville ja toimii.

Edit: Annetaan nyt pseudokoodi vielä:

Jos vastaus on muuta kuin 1-4
  Tulostetaan virhe ja poistutaan (exit;)
Luetaan tiedosto
Muutetaan (vastaus+4). riviä yhdellä
Avataan tiedosto
Silmukassa käydään läpi kaikki rivit
  Kirjoitetaan tiedostoon trim(rivi)."\n"
Suljetaan tiedosto

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta