Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Chatti

Bagard [17.01.2004 20:47:11]

#

Eli tässä on tämmönen koodipätkä joka lisää formista saadut tiedot tiedostoon, mistä ne sitten luetaan. Voisiko joku sen verran muokata tuota, että uusin viesti menisikin ensimmäiseksi. Nyt uusin viesti menee alimmaiseksi. Tuota pätkää ennen pari iffiä jotka tarkistavat onko tyhjiä kenttiä...

if (1234) {} # ...
else {
    $aika = time();
    $aika2 = date("d.m.Y \- H:i:s", $aika);
    $kirjoitus = fopen("chat_viestit.dat", "a");
    $nohtmlnick = str_replace("<", "&lt;", $nick);
    $nohtmlnick = str_replace(">", "&gt;", $nohtmlnick);
    $nohtmlviesti = str_replace("<", "&lt;", $viesti);
    $nohtmlviesti = str_replace(">", "&gt;", $nohtmlviesti);
    fwrite($kirjoitus, "<b>".$nohtmlnick." - ".$aika2."</b><br>\n");
    fwrite($kirjoitus, "".$nohtmlviesti."<br><br>\n");
    fclose($kirjoitus);
    include("chat.php");
}

Olga [17.01.2004 21:24:25]

#

Eli eka vanhat viestit taulukkoon, kirjoitetaan uudet tyhjään tiedostoon, ja sit vanhat perään.

<?php
else {
  $aika = time();
  $aika2 = date("d.m.Y \- H:i:s", $aika);
  $vanhat = file("chat_viestit.dat");
  $kirjoitus = fopen("chat_viestit.dat", "w");
  $nohtmlnick = str_replace("<", "&lt;", $nick);
  $nohtmlnick = str_replace(">", "&gt;", $nohtmlnick);
  $nohtmlviesti = str_replace("<", "&lt;", $viesti);
  $nohtmlviesti = str_replace(">", "&gt;", $nohtmlviesti);
  fwrite($kirjoitus, "<b>".$nohtmlnick." - ".$aika2."</b><br>\n");
  fwrite($kirjoitus, "".$nohtmlviesti."<br><br>\n");

  for($i=0;$i<count($vanhat);$i++) {
    fwrite($kirjoitus,trim($vanhat[$i])."\n");
  } // for

  fclose($kirjoitus);
  include("chat.php");
}
?>

edit: kooditagit ja muut.

Bagard [18.01.2004 14:27:56]

#

Kiitti Irksome, nyt toimii hyvin.

Bagard [19.01.2004 08:59:58]

#

Tuolla on valmis versio: http://koti.mbnet.fi/roinaa/idlaa/chat.php
:P

T.M. [22.01.2004 00:51:20]

#

Humm... en vieläkään ole tajunnut for..fwrite ideaa.

array_reverse on käyttökelpoinen funktio tälläisiin:

<?php

$vanhat = file("chat_viestit.dat");
$vanhat = array_reverse($vanhat);

foreach($vanhat as $jotain){
    print"$jotain<br>"; // tulostaa viestit, uusin ekana
}

?>

Tietenkin tuota ennen tallennat ne viestit tavalliseen tapaan sinne tiedoston loppuun

Muista ettei sillä ole mitään merkitystä missä muodossa se tieto on, kunhan vain osaat purkaa sen haluamallasi tavalla :P

Olga [22.01.2004 01:29:52]

#

Tapansa kullakin, sanoi lapamato. Onhan tuo selvästi helpompi tapa tuo array_reverse, mutta jostain syystä oon omaksunu tuon $vanhat-taulun käytön. Ei vanha koira uusia temppuja opi :)

Ja näitä sananlaskuja piisaa vielä.

T.M. [22.01.2004 03:02:19]

#

Juu... tietenkin... :D
Mutta ei koiralle kannata opettaa huonoja tapoja ;)

Edit: Logiikkani ei pysty vieläkään käsittämään tuota ihmeellistä for-silmukkaa jossa on tuo tiedostoon kirjoitus =D *äh*

Vastaus

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

Tietoa sivustosta