keksimpä hyvän otsikon :P No ongelma on että miten saan tarkistettua että onko $k sama kuin $i. Itellä on tämmönen skripti mut ei toimi:
ja siinä skriptissä muuttujien arvot on samat.
Kyllähän tuo toimmii. Ja missä on muuttujien arvojen määrittely?
Ja onhan palvelimella php tuki asennettuna ja tiedoston pääte .php?
Kyllä tuon pitäis toimia. Ootko varma et palvelimella edes on PHP:tä? :)
Edit: oho, akseli ehti ensin :P
Testaa vaan se PHP:n olevuus tai sit tätä:
ja se on keksinpä.
On palvelimella php.. huomasein ite just ongelman se on se että tossa kun määritän $k:n niin seuraavalla kerralla sen päälle tulee toinen arvo :P eli määritän muutujat näin:
<?php $filu = file("luvut.txt"); $maara = -1; for ($f = 0; $f < 7; $f ++) { $tiedot = explode("|", $filu[$f], 1); $i = $tiedot[0]; $maara = $maara + 1; $k = $_POST["$maara"]; if ($k == $i) { echo "oikein<br>"; } else { echo "väärin<br>"; } ?>
nii ja tuolla luvut.txt filussa lukee seittemällä rivilla j ja toi $k on j joka tulee seittemän kertaa lomakkeelta.
Mitenhän ton vois sit tehä niin ettei $k:n arvo katoa tai siis muutu?
Anna filusta esimerkki.
j
j
j
j
j
j
j
siin on filun sisältö tällähetkellä..
K:lle tulee joka loopin kierroksella uusi arvo, koska määrität $k:n seuraavasti:
$k = $_POST["$maara"];
Ja määrän arvohan kasvaa 0...6 loopin edetessä. Onko sinulla siis lomakekenttä, jossa seitsemän esim. inputtia, joiden nimet ovat 0...6?
Jos ei, mitä vahvasti epäilen, niin muutappa tuo $k:n määrittely:
$k = $_POST['lomakekentan_nimi'];
on mulla 7 inputtia kun teen ristikkoo.. ja inputtien nimet on 0 - 6
Joo, tajusin ton heti kun olin postannu ton... Kannattais lukee noi kysymykset kunnolla ennen ku lähtee vastailemaan :) Mitähän tarkemmin ottaen tarkoitat:
"ettei $k:n arvo katoa tai siis muutu?"
$k:n arvohan löytyy edelleen tuolta $_POST[]-taulukosta
joo niin löytyy mutta kun silmukka käydään ekan kerran läpi niin $k:n arvo $_POST[0] eli j mutta seuraavalla kerrallahan se on $_POST[1] siis j. no silloinhan toi if lause täyttyy vaan vikalla kerralla kun silmukka käydään läpi. Tai oikeestaanhan toi nyt toimii, mut sitten kun rivit on tätä:
käyttäjä lähettää:
ö
k
j
oikee rivi on:
ö
k
j
niin sittenhän if lause suritetaan vasta vikalla kerralla.
Ei nyt vieläkään oikein mene jakeluun... En kyllä löydä mitään syytä (paitsi yksi kaarisulje puuttuu), miksei tuota if lausetta suoritettaisi jokaisella kierroksella. Kyllä tuon pitäisi toimia. Tai sitten mulla on vielä unihiekkaa silmissä :/
Vika saattaa johtua siitä, että tiedostosta luettujen rivien perässä on ylimääräinen rivinvaihto. Turhat rivinvaihdot saa pois trim-funktiolla muuttamalla esim. seuraavaa kohtaa:
$i = trim($tiedot[0]);
Miksi muuten luet rivit noin hankalasti explode-funktiolla? Jos rivillä on vain yksi kirjain, niin silloinhan riittää:
$i = trim($filu[$f]);
ei muuttanu asiaa millään lailla... mut toi $i = trim($filu[$f]); kuullostaa hyvältä.
sain toimii.. kiitti. Vika oli varmaan siinä tiedoston luvussa koska kun otin käyttöön ton Antin mallin niin heti alko toimii.. :P
Aihe on jo aika vanha, joten et voi enää vastata siihen.