Tämä skripti kirjoittaa .dat nimiseen tiedostoon lomakkeen tiedot aina yhdelle riville, mutta taas eilisen jälkeen kun testasin skriptiä niin se teki yhden tyhjän rivin tiedostoon lomakkeen tietojen lisäksi. .dat -tiedostosta ilmeni että kyseessä on samanlainen rivi kuin millainen tulee lomakkeen tiedoista eli tiedostossa oli sama määrä pystyviivoja (|) sekä pisteitä ja viivoja kuten kuuluukin.
Eli miten tuon tyhjien rivien tekemisen pystyy estämään. Tässä koodi:
<?php if (isset($_POST['len']['1']['nro'])) { $len1nro = $_POST['len']['1']['nro']; } ?> <?php if (isset($_POST['len']['2']['nro'])) { $len2nro = $_POST['len']['2']['nro']; } ?> <?php if (isset($_POST['len']['3']['nro'])) { $len3nro = $_POST['len']['3']['nro']; } ?> <?php if (isset($_POST['len']['1']['mist'])) { $l1mist = $_POST['len']['1']['mist']; } ?> <?php if (isset($_POST['len']['1']['mihi'])) { $l1mihi = $_POST['len']['1']['mihi']; } ?> <?php if (isset($_POST['len']['2']['mist'])) { $l2mist = $_POST['len']['2']['mist']; } ?> <?php if (isset($_POST['len']['2']['mihi'])) { $l2mihi = $_POST['len']['2']['mihi']; } ?> <?php if (isset($_POST['len']['3']['mist'])) { $l3mist = $_POST['len']['3']['mist']; } ?> <?php if (isset($_POST['len']['3']['mihi'])) { $l3mihi = $_POST['len']['3']['mihi']; } ?> <?php $kvt = $_POST['k_v']; $lspvm = $_POST['lspvm']; $lsaika = $_POST['lstaika']; $len = $_POST['lk']; $muul = $_POST['muulk']; $pv = $_POST['pv']; $kk = $_POST['kk']; $yy = $_POST['vvvv']; $kas = $_POST['kasittely']; $lpk1 = $_POST['la1']; $lpk2 = $_POST['la2']; $lpk3 = $_POST['la3']; $laAir1 = $_POST['laa']; $l = $_SERVER['PHP_AUTH_USER']; //luodaan rivi teksitiedostoon tallentamista varten $rivi = "$lspvm|$lsaika|$lenk|$muul|$l1nro |$l1mist -| $l1mihi| $l2nro |$l2mist -| $l2mihi| $l3nro |$l3mist -| $l3mihi|$kas|$pv.|$kk.|$yy|$lpk1|$lpk2|$lpk3<br> \r\n"; //avataan tietokantatiedosto append-tilassa $tiedosto = fopen("$l.dat", "a"); //kirjoitetaan rivi tiedostoon fwrite($tiedosto, $rivi); //suljetaan tiedosto fclose($tiedosto); echo "<td style=\"text-align: left; vertical-align: middle; height: 36px; width: 557px;\"> <input class=\"c\" value=\" Lähetä \" type=\"submit\">"; echo "<span style=\"font-weight: bold;\"><br>"; ?>
Onko muuten jotain tapaa laskea tekstitiedostossa olevien tietojen rivien määrän?
Osaako kukaan auttaa tuossa 1. viestin asiassa?
combo kirjoitti:
Tämä skripti kirjoittaa .dat nimiseen tiedostoon lomakkeen tiedot aina yhdelle riville, mutta taas eilisen jälkeen kun testasin skriptiä niin se teki yhden tyhjän rivin tiedostoon lomakkeen tietojen lisäksi.
Ei tuon koodin pitäisi lisätä tyhjiä rivejä.
Tuo kauhea if(isset($foo)) -viritys on muuten aivan turha. Lisäksi tuossa kannattaisi käyttää silmukoita ja muuttaa lomakkeesta la1, la2 jne. taulukoksi.
<?php $rivi = "$lspvm|$lsaika|$lenk|$muul|"; $kentat = array ("nro", "mist", "mihi"); for ($i = 1; $i <= 3; $i++) { foreach ($kentat as $k) { $rivi .= $_POST ['len'][$i][$k] . "|"; } } $rivi .= "$kas|$pv.|$kk.|$yy|" . implode ("|", $_POST ['la']) . "<br> \r\n";
combo kirjoitti:
Onko muuten jotain tapaa laskea tekstitiedostossa olevien tietojen rivien määrän?
Tuo skripti, jolla pitäisi pystyä laskemaan rivit, ei toimi heittää erroria.
Mitä tuossa ylemmässä skriptissä
$_POST ['la']
meinaa, missä nimi on 'la' ?
Tässä dat -tiedosto, jossa on ns. tyhjiä rivejä, eli ainoastaan pystyviivoja (|), jotka tulostuvat tyhjänä tilana, sivulle jolle lomakkeen tietojen pitäisi tulostua.
11.10.2010|17:17|K170||203 |HKL -| SJY| | -| | | -| |Odottaa käsittelyä|11.|10.|2010|181||<br> 11.10.2010|17:17|K170||203 |HKL -| SJY| | -| | | -| |Odottaa käsittelyä|11.|10.|2010|181||<br> 11.10.2010|17:18|K170||11 | -| | | -| | | -| |Odottaa käsittelyä|.|10.|2010|||<br> |||| | -| | | -| | | -| ||.|.||||<br> 12.10.2010|10:24|K170||20X |HKL -| TPP| | -| | | -| |Odottaa käsittelyä|18.|09.|2010|49||<br> |||| | -| | | -| | | -| ||.|.||||<br> |||| | -| | | -| | | -| ||.|.||||<br> |||| | -| | | -| | | -| ||.|.||||<br> |||| | -| | | -| | | -| ||.|.||||<br> |||| | -| | | -| | | -| ||.|.||||<br> |||| | -| | | -| | | -| ||.|.||||<br> |||| | -| | | -| | | -| ||.|.||||<br> |||| | -| | | -| | | -| ||.|.||||<br> |||| | -| | | -| | | -| ||.|.||||<br> |||| | -| | | -| | | -| ||.|.||||<br> |||| | -| | | -| | | -| ||.|.||||<br> |||| | -| | | -| | | -| ||.|.||||<br> |||| | -| | | -| | | -| ||.|.||||<br> |||| | -| | | -| | | -| ||.|.||||<br> 12.10.2010|13:56|K170||0000 |HKL -| SJY| | -| | | -| |Odottaa käsittelyä| .|10.|2010|60||<br> 12.10.2010|13:57|K170|| | -| | | -| | | -| |Odottaa käsittelyä|.|10.|2010|||<br> |||| | -| | | -| | | -| ||.|.||||<br> 12.10.2010|14:04|K170||2456 |HKL -| TPP| |TPP -| HKL| |HKL -| SJY|Odottaa käsittelyä|88.|10.|2010|NaN||<br> 12.10.2010|14:04|K170||2456 |HKL -| TPP| |TPP -| HKL| |HKL -| SJY|Odottaa käsittelyä|88.|10.|2010|NaN||<br> 12.10.2010|14:04|K170||2456 |HKL -| TPP| |TPP -| HKL| |HKL -| SJY|Odottaa käsittelyä|88.|10.|2010|NaN||<br> 12.10.2010|14:04|K170||2456 |HKL -| TPP| |TPP -| HKL| |HKL -| SJY|Odottaa käsittelyä|88.|10.|2010|NaN||<br> 12.10.2010|14:07|K170||255 |HKL -| TPP| 2777 |TPP -| OUL| 2222 |SJY -| HKL|Odottaa käsittelyä|10.|10.|2010|60|503|831<br> |||| | -| | | -| | | -| ||.|.||||<br> 12.10.2010|14:10|72||222 |rth -| rth| | -| | | -| |Odottaa käsittelyä|11.|10.|2010|NaN||<br> 12.10.2010|14:11|K170||rfgthy |yyy -| yhn| | -| | | -| |Odottaa käsittelyä|34.|10.|2010|NaN||<br> 12.10.2010|14:11|K170||rfgthy |yyy| yhn| || | || |Odottaa käsittelyä |34 |10|2010|NaN||<br> 12.10.2010|14:11|K170||rfgthy |yyy| yhn| || | || |Odottaa käsittelyä |34 |10|2010|NaN||<br> 12.10.2010|14:17|K170||211 |HKL| KNF| || | || |Odottaa käsittelyä |10 |10|2010|108||<br> 12.10.2010|14:07|K170||255 |HKL| TPP| 2777 |TPP| OUL| 2222 |SJY| HKL|Odottaa käsittelyä |10 |10| 2010|60|503|831<br> |||| || | || | || | | || |||||<br> |||| || | || | || | | || |||||<br> 12.10.2010|15:02|K170||211 |HKL| TPP| || | || |Odottaa käsittelyä |9 |10| 2010|38|||.|-<br> |||| || | || | || | | || ||||||<br> |||| || | || | || | | || ||||||<br> |||| || | || | || | | || ||||||<br> |||| || | || | || | | || ||||||<br> 12.10.2010|16:12|K170||2222 |xxx| XXX| || | || |Odottaa käsittelyä |88 |10| 2010|300|||.|-|<br>
combo kirjoitti:
Tuo skripti, jolla pitäisi pystyä laskemaan rivit, ei toimi heittää erroria.
Kyllä se minulla toimi. Otithan huomioon, että skriptistä puuttuu rivien lukumäärän tulostaminen ja PHP:n lopetustagi.
combo kirjoitti:
Mitä tuossa ylemmässä skriptissä
...
meinaa, missä nimi on 'la' ?
tossu kirjoitti:
... ja muuttaa lomakkeesta la1, la2 jne. taulukoksi.
Ei sitä la:ta ole vielä missään, mutta muuta siitä lomakkeesta nuo kaikki la:t yhdeksi taulokoksi. Eli muuta la1, la2 ja la3 la[] :ksi.
Edit:
combo kirjoitti:
Tässä dat -tiedosto, jossa on ns. tyhjiä rivejä, eli ainoastaan pystyviivoja (|), jotka tulostuvat tyhjänä tilana, sivulle jolle lomakkeen tietojen pitäisi tulostua.
Eihän lomake ja sen käsittely ole samalla sivulla? Mikäli näin on, tiedostoon tulee tyhjä rivi joka kerta kun lomakesivu ladataan.
-tossu- kirjoitti:
Edit:
combo kirjoitti:
Tässä dat -tiedosto, jossa on ns. tyhjiä rivejä, eli ainoastaan pystyviivoja (|), jotka tulostuvat tyhjänä tilana, sivulle jolle lomakkeen tietojen pitäisi tulostua.
Eihän lomake ja sen käsittely ole samalla sivulla? Mikäli näin on, tiedostoon tulee tyhjä rivi joka kerta kun lomakesivu ladataan.
Kyllä on samalla sivulla, onko tämä ratkaisu ongelmalle?
combo kirjoitti:
Kyllä on samalla sivulla, onko tämä ratkaisu ongelmalle?
Ennen lomakkeen käsittelyä pitää tarkistaa, onko lomake lähetetty.
Viisaampaa olisi laittaa lomake ja käsittely kokonaan eri sivuille ja ohjata käyttäjä käsittelyn jälkeen takaisin lomakkeelle Location-otsikolla.
Vaikkapa niin.
Täytyy kokeilla
Tuo rivien lasku koodi:
Minun vanhassa oppikirjassani tuo read eli r on laitettu hipsukoihin 'r' eikä lainaismerkkeihin "r".
Mod. lisäsi kooditagit
Eio väliä. Rivien laskemiseen toimii myös helpompi file
, mikäli tiedosto ei ole massiivinen.
Aihe on jo aika vanha, joten et voi enää vastata siihen.