Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Pieni koodi

Sivun loppuun

mgv [27.08.2002 21:15:47]

#

Viime kerralla pyysin foorumia, mutta kun ei sitä tullut, aloitin tekemään sitä itse. Nyt vain tarvitsisin sellaista palvelusta yksinkertaisesta koodista, joka kirjoittaisi aina jotakin tekstitiedostoon edellisen viestin päälle. Tarkoitan siis, että täälläkin on selkeästi tehty niin. Tekstitiedosto on avattu ja siellä on lukenut esimerkiksi uusin vastaus viestiin. Miten saan tämmöisen koodin? voisiko joku vain kertoa, miten saa fwritellä (tai jollain muulla) kirjoitettua tekstitiedostoon edllisen tekstin päälle.

tomaattigeeni [28.08.2002 14:22:03]

#

siis haluut vanhan tiedoston nollille ja sitte uuden päälle?
Poista eka vanha tiedosto unlink($tiedosto); (olikohan toi funktio) ja sitte kirjotat normaalisti fwrite();llä

mgv [28.08.2002 15:01:48]

#

Hmm... nyt tuli jokin vika. Tulee vain teksti:
Parse error: parse error in c:\apache\htdocs\nimi.php on line 7
eli errori tuli.

pistemies [28.08.2002 17:45:44]

#

lainaus:

Nyt vain tarvitsisin sellaista palvelusta yksinkertaisesta koodista, joka kirjoittaisi aina jotakin tekstitiedostoon edellisen viestin päälle. Tarkoitan siis, että täälläkin on selkeästi tehty niin. Tekstitiedosto on avattu ja siellä on lukenut esimerkiksi uusin vastaus viestiin.

Tarkoitat ilmeisesti viestien kirjoittamista niin, että uusin viesti on ylimpänä eikä kirjaimellisesti "päälle" kirjoitusta?

pistemies [28.08.2002 17:46:33]

#

Oho, tulipa tuolle viestille ulkonäköä

thefox [28.08.2002 18:10:50]

#

lainaus:

Hmm... nyt tuli jokin vika. Tulee vain teksti:
Parse error: parse error in c:\apache\htdocs\nimi.php on line 7
eli errori tuli.

Jos haluat apua, niin kannataisi myös laittaa hieman koodia näkyville.
Katso muita threadejä joihin Laaksonen on näköjään jo kirjoittanut vastauksen.

trinit [28.08.2002 19:54:14]

#

lainaus:

Viime kerralla pyysin foorumia, mutta kun ei sitä tullut, aloitin tekemään sitä itse.

No niin, niin sitä pitää :) Itse tekemällä oppii parhaiten.

lainaus:

Nyt vain tarvitsisin sellaista palvelusta yksinkertaisesta koodista, joka kirjoittaisi aina jotakin tekstitiedostoon edellisen viestin päälle.

Tarkoittanet että vastaus johonkin viestiin kirjoitettaisiin samaan tiedostoon jossa alkuperäinenkin viesti on? Ja se vastaus kirjoitettaisiin ennen alkuperäistä viestiä?

Onnistuu esimerkiksi niin, että luet tiedoston ensin muistiin ja sen jälkeen avaat saman tiedoston fopen() funktiolla "w" -muotoon. Tämän jälkeen kirjoitat uuden vastauksen fwrite:lla tähän tiedostoon + muistissa oleva teksti.

Ja vinkkinä omaan kokeiluun: tarvitset näitä; fopen, fwrite, file, count ja for

Toinen tapa on kirjoittaa uusi vastaus johonkin väliaikaiseen tiedostoon ja siihen perään vanhat viestit. Sen jälkeen poistat alkuperäisen viestitiedoston ja muutat väliaikaisen tiedoston tiedostonimen samaksi kuin äsken poistit.

Ja vinkki tähänkin: fopen, fwrite, unlink, rename ja for

En väitä että nämä olisivat parhaimmat tavat tehdä tuo, mutta itse olen niitä käyttänyt.

mgv [28.08.2002 21:49:33]

#

Luen tiedostonimen muistiin? No nyt en kyllä ymmärtänyt.

pistemies [29.08.2002 15:15:56]

#

Ei tarkoita ihan, että omaan muistiin..., Tallennat vanhat viestit muuttujaan, esim. näin:

$vanhat=file("viestit.txt");

mgv [30.08.2002 21:14:41]

#

no nyt en kyllä pysy mukana. Yritän siis saada kiinni koodista, joka kirjoittaa esimerkiksi uusimman vastauksen, tai vastaajan nimen (jos nimeä kysytään). Antaisitteko suorana koodina? Kiitos.

pistemies [30.08.2002 22:49:26]

#

$vanhat=file("vkirja.txt");
$filu=fopen("vkirja.txt","w") or die ("Tiedoston avaus epäonnistui");
$viesti = stripslashes($viesti);
 $uusirivi='<table bgcolor="white" width=650><tr><td width=580><b><font face=/"Arial/"><h5>Nimi:'.strip_tags($nimi).'</h5></font></td><td width=70><font face=/"arial/"><h6>pvm:'.date('d.m.Y H:i').'</h6></font></b></td></tr>
<tr><td><b><font face=/"arial/"><h5>Osoite:'.strip_tags($osoite).'</h5></b></font></td><td></td></tr>
<tr><td><table><tr><td><font face=/"arial/" color=/"#000055/"><h5><b>Email:</h5></td><td><a href=/"mailto:'.strip_tags($email).'/"><h5>'.strip_tags($email).'</h5></b></font></td></tr></table></td><td></td></tr>
<tr><td><table><tr><td><font face=/"arial/" color=/"#000055/"><h5><b>Kotisivu:</h5></font></td><td><font face=/"arial/"><h5><a href=\"http://'.strip_tags($urlosoite).'\" target=_blank>'.strip_tags($urlosoite).'</a></h5></b></font></td></tr></table></td><td></td></tr>
<tr><td><font face=/"arial/" color=/"#000055/"><h5>'.strip_tags($viesti).'</h5></font></td><td></td></tr></table><br>';
fputs($filu,$uusirivi) or die ("Tiedostovirhe");
for ($i=0;$i<count($vanhat);$i++)
{
fwrite($filu,$d[$i]);
}
fclose($filu);
 }

Tästä voit alkaa miettimään. Siinä nämä muuttujat ($nimi), jotka on strip_tagsien perässä, viittaavat formin name-määreeseen. Jos ei aukene, jatka kyselyä.

mgv [01.09.2002 21:24:11]

#

Parse error: parse error in c:\apache\htdocs\vkirja.php on line 16

Tuollaista sanoo

pistemies [01.09.2002 21:47:01]

#

Mitä tuolla rivillä 16 mahtaa lukea? En tiä, mutta ahaa..

fwrite($filu,$d[$i]);

Tuo kuuluu olla näin:

fwrite($filu,$vanhat[$i]);

Sorry

pistemies [01.09.2002 21:49:22]

#

Tosin tuo virhe ilmoittaisi erilaisen virheilmoituksen kuin toi parse error. Siis sittenkin: mitä rivillä 16 lukee? Voisitko laittaa koodia pätkän?


Sivun alkuun

Vastaus

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

Tietoa sivustosta