Hei.
Osaisko joku auttaa , ku mull toi koodi tökkii sen pitäisi lähettää ja tallentaa kaikki tekstit tekstitiedostoon, säilyttää myös vanhat. Noh, tällä hetkellä se ei tallenna vanhasta viestistä kuin kaksi riviä, muuten kaik on iha jees.
Anteeksti, toi lomake ei ole vielä valmis läheskään mut tällainen ongelma tuli eteen.
lomakk.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> </head> <body> <?php header('Content-Type: text/html; charset=utf-8'); ?> <?php echo "<form action=updatru.php method=post>"."<br>"; echo "Nimi <input type=text name=nimi size=20>"."<br>"."<br>"; $ic = 0; $ic_max = 2; // stops after this number of rows $handle = fopen("kysymykset.txt", "r"); while (!feof($handle) && ++$ic<=$ic_max) { $buffer = fgets($handle, 4096); echo $buffer."<br>"; echo "<input type=radio name=kysely1 value=Helsinki>Helsinki"; echo "<input type=radio name=kysely1 value=Tukholma>Tukholma"."<br>"."<br>"; } echo "<input type=submit value=Lähetä> "; echo "</form>"; fclose($handle); ?> </body> </html> updatru.php <?php header('Content-Type: text/html; charset=utf-8'); ?> <?php //Luetaan tekstitiedosto jossa on kaikki ruotsi.php:n muuttuva teksti //Tallennetaan viestit muuttujaan $filename = "ruotsi.txt"; $filu = fopen($filename, "r"); $viestit = fgets($filu, filesize($filename)); fclose($filu);//suljetaan filu operaatio $i=0; $a=0; while(++$i<=2){ if( $_POST['kysely1']==Helsinki){ $a=$a+1; $vastaus="Oikein"; } else{ $a=$a+0; $vastaus="Väärin"; } } $ic = 0; $ic_max = 2; // stops after this number of rows $handle = fopen("kysymykset.txt", "r"); while (!feof($handle) && ++$ic<=$ic_max) { $buffer[$ic] = fgets($handle, 100); echo $buffer."<br>"; } fclose($handle); $ic=1; //Tuodaan kysely lomakkeesta tiedot "tiedot" muuttujaan $tiedot ='<b>Nimi:</b>' . ' ' . $_POST['nimi'].'<br>'. $buffer[$ic] . $vastaus.'<br>'.'<br>'. $buffer[$ic+1].'<br>'.$vastaus. '<br>' . $a .'/'.'2'.' oikein'. '<hr>'; //Avataan käsiteltäväksi oppilas-tekstitiedosto //Tallennetaan tiedoston sisältö oppilas-muuttujaan //Oppilastiedostossa on käyttäjän antama lukumäärä oppilaista //jota verrataan kävijälaskuriin jonka perusteella rajoitetaan //lomakkeen käyttöä $filu=fopen("oppilas.txt","r"); $oppilas=fread($filu, filesize("oppilas.txt")); fclose($filu); //Avataan käsiteltäväksi testi-tekstitiedosto //tallennetaan tiedoston sisältö visit muuttujaan //testitiedostossa on kävijälaskurin tulos $file = fopen( "testi.txt", "r") or die ("Ei oikeuksia! Ilmoita webmasterille!"); $visit = fread( $file, filesize( "testi.txt" ) ); fclose($file); //Aina kun käyttäjä lähettää lomakkeen, lisätään visit-muuttujaa yhdellä $visit = $visit + 1; $file = fopen ("testi.txt", "w") or die ("Ei oikeuksia! Ilmoita webmasterille!"); fputs( $file, $visit ); fclose($file); //Jos käyntrjä on enemmän kun oppilaiden lukumäärä, palautetaan virhe ja viedään //lähettäjä toiselle sivulle if($oppilas < $visit){ header("Location: lomakk.php"); } //jos lähettäjä hyväksytään //avataan ruotsi-tekstitiedosto //ja tallennetaan siihen lomakkeen tiedot else { $filu=fopen("ruotsi.txt","w"); fputs($filu, $tiedot); fputs($filu, $viestit); fclose($filu); header("Location: ruotsi.php"); } ?> ruotsi.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> </head> <body> <p><a href="index.php">Kirjaudu ulos</a></p> <p><a href="lomakk.php">Tästä lomakkeeseen</a></p> <p><a href="lomak.php">Tästä opiskelijamäärien hallintaan</a></p> <?php // index.php session_start(); // kirjautumisen tarkistus if (isset($_SESSION['tunnus'])) { } else { header("Location: index.php"); //echo "<p>Et ole kirjautunut sisään.</p>"; //echo "<p><a href=\"lomake.php\">Kirjaudu sisään</a></p>"; } ?> <?php //Avataan ruotsi-tekstitiedosto //ja tuodaan kaikki data näkyville $file = 'ruotsi.txt'; $open = file($file); $count = count($open); for ($p=0; $p<$count; $p++) { $entry = explode(chr(""), $open[$p]); echo ("$entry[0]"); echo "<br>\n"; } ?> <?php $filu=fopen("ruotsi.txt","r"); //Jos poista-nappulaa on painettu vaustauslehti tyhjennetään if (isset($_GET['poista']) && $_GET['poista'] == true) { $filu=fopen("ruotsi.txt","w"); fputs($filu, " "); header("Location: ruotsi.php"); } /*$file = "ruotsi.txt"; $filu = fopen($file, "w"); unlink('ruotsi.txt'); //touch('ruotsi.txt'); fclose($filehandle); */ ?> <form> <input type="submit" name="poista" value="Tyhjennä"> </form> </body> </html> Tämmösen rimpsun ku lisäsin lomakk.php:hen ja updatru.php:hen nii ongelmat synty $ic = 0; $ic_max = 2; // stops after this number of rows $handle = fopen("kysymykset.txt", "r"); while (!feof($handle) && ++$ic<=$ic_max) { $buffer[$ic] = fgets($handle, 100); echo $buffer."<br>"; } fclose($handle);
ps. Koodia voi tsekata osoitteessa www.rope1986.com/ruotsi
Tunnus on pepe ja passu on aaa
Eka sivulle avautuu eräänlainen hallintapaneeli johon syötetään luku jonka verran lomakkeita voi lähettää, sen jälkeen painaa lähetä ja ruutuun avautuu todellinen lomake.
Kun valintana on vastaukset niin se on vielä tällä hetkellä vaiheessa, eli kaikki valinnat on vielä yhteydessä toisiinsa kun siinä on neljä valintaa nii käytännössä siinä on vain kaksi jotka se tarkistaa mut mut se ei tosiaan ole se pointi vaan kun silloin ku lähettää sen lomakkeen ja se avaa pohjan missä tulostetaan vastaukset nimet yms. niin se ei vanhasta lomakkkeesta tallenna kuin kaksi riviä vaikka sen pitäisi tallentaa kaikki vanha viesti sekä ylös uusin.
Tuo updatru.php tulee heti lomakkeen lähettämisen jälkee jossa se käsittelee tiedot ja sen jälkeen pistää kaiken tulostettavaksi.
Toivon, että joku voisi vinkata miksi näin.
Vaihda argumentiksi "a"
$handle = fopen("kysymykset.txt", "a");
kooditagit, tosta ota muuten mitää selvää... -.-
mut silloin se ei näköjään tulosta yhtään mitään tuosta kysymykset.txt:stä
$handle = fopen("kysymykset.txt", "a");
Tuo avaa tiedoston tiedon lisäämistä varten, ei lukemista varten. :)
Vaikea tosiaan tarkemmin mitään tutkia kun kooditageja ei ole.
Olisiko tällä jotakin merkitystä ongelman kanssa?
$ic_max = 2; // stops after this number of rows
noi, ny on kooditagit
Valitettavasti trilog tolla jutulla ei ole vaikutusta.
Toi a:n vaihtaminen toimi, kiitoksia paljon
Aihe on jo aika vanha, joten et voi enää vastata siihen.