Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: ongelmia tekstitiedostoon kirjoittaessa

sprawl [03.02.2006 21:44:08]

#

Olen siis muista esimerkeistä keräännyt koodi pätkiä ja muokannut niitä, tuloksena pitäisi saada ohjelma joka lisää textiboksiin antamasi tiedot tekstitiedoston loppuun/alkuun, korvaamatta kuitenkaan yhtään muuta riviä.

Kaikki seuraavat koodit on samalla sivulla, "oma2testi.php". vitsit.txt on chmod 777.

<?php
 if ($viesti != '') {
  $uusirivi = strip_tags($viesti) .
              '<br>';
  $tiedosto = fopen('vitsit.txt', 'a');
  fputs($tiedosto, $uusirivi);
  fclose($tiedosto);
 }
?>
  <hr>
  <form action="oma2testi.php" method="post">
     Vitsi: <input name="viesti" size="60"><br>
     <input type="submit" value=" Jätä vitsi ">
  </form>
  <br>

Sitten alempana sivua arvotaan yksi rivi tiedostosta: (tämä kyllä toimii, testasin yhden toisen tiedoston kanssa)

<?php
$file = "vitsit.txt";

srand((double) microtime() * 1000000);
$quotes = file($file);
echo $quotes[rand(0, sizeof($quotes)-1)];
?>

Ongelma siis siinä että tuo ei lisää textiboksiin kirjoitettua viestiä. Johtuuko siitä että siellä on jo noin 80 riviä tekstiä ?

Olen kokeillut laittaa $_POST tagillakin mutta ei auta

sooda [03.02.2006 21:58:59]

#

Onko alussa $viesti = $_POST["viesti"]? Jos register_globals on pois (yleensä), niin ilman sitä ei viesti tule.

sprawl [03.02.2006 22:02:49]

#

Kokeillut olen juuri tuolla tavalla mutta ei auta.
Jos joku tietää paremman keinon lisätä yksi rivi tietoineen tekstitiedostoon niin kertokaa ihmeessä.

Tuo koodin saa toimimaan seuraavasti:

<?php
 if ($viesti != '') {
  $uusirivi = '<p><b>' . date('d.m.Y H:i') . ', ' .
	          strip_tags($nimi) . '</b>: ' . strip_tags($viesti) .
              '</p>';
  $tiedosto = fopen('vieraskirja.txt', 'a');
  fputs($tiedosto, $uusirivi);
  fclose($tiedosto);
 }
?>

Mutta nyt pitäisi saada aina tieto uudelle riville, ilman päivämääriä sun muite.

Hmm, nyt toimii.. vähän huonosti tosin

->se lisää viimeisimmän rivin loppuun tiedot aina tähän muotoon:
<br>vitsi1<br>vitsi1<br>blabla<br>blabla<br­>olenko vai en<br>ssss

vaikka pitäis saada muotoon:
vitsi 1
vitsi 2
asdf
asdf
asdf
f

kasetti [03.02.2006 22:06:44]

#

Kokeileppa auttaako tuo pätkä mitään: http://www.kasetti.info/koodivinkit.php?koodi=13

squid [03.02.2006 22:07:47]

#

Mutta mistäs sinä sen viestin saat?

folio [03.02.2006 22:11:47]

#

Kirjoita sinne tiedostoon myös rivinvaihto:

$uusirivi = '<p><b>' . date('d.m.Y H:i') . ', ' .
              strip_tags($nimi) . '</b>: ' . strip_tags($viesti) .
              '</p>' . "\r\n";

sprawl [03.02.2006 22:15:07]

#

squid kirjoitti:

Mutta mistäs sinä sen viestin saat?

tuon minkä laitoin 03.02.2006 22:02:49 ei ole tuollaisenaan valmis, jos sitä tarkoitit

älkää tuohon 03.02.2006 22:02:49 laitettuun viestiin kiinnittäkö huomiota kun pitäisi saada tuo ylimmäinen versio toimimaan :)

Nyt toimii:

<?php
 if ($_POST['viesti'] != '') {
  $uusirivi = strip_tags($_POST['viesti']) .
               "\r\n";
  $tiedosto = fopen('vitsit.txt', 'a');
  fputs($tiedosto, $uusirivi);
  fclose($tiedosto);
 }
?>

Vastaus

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

Tietoa sivustosta