Moi oon tehny tälläsen:
//Index.php <form action="chat.php" method="post"> <table border="1"> <tr> <td>Nimesi:<input type="text" maxlength="20" name="nimi">Viesti: <input type=\"text\" name="viesti"><input type="submit" value="Jatka"> </td> </tr> </table> </form> <hr color="black"> <?php include("viestit.txt"); ?>
//chat.php <?php $aika = date("H:i:s"); if ($nimi !="") { $uusirivi = "Nimi: <b>$nimi</b> <br>Aika: <b>$aika</b><br> Viesti: <b>$viesti </b><br><br>"; $tiedosto =("viestit.txt"); $av =fopen($tiedosto, "a"); fputs ($av, "$uusirivi"); fclose ($av); } if(empty($nimi)) {echo "Hups ! Taisi unohtua Nimi O_o"; exit;} if(empty($viesti)) {echo "Hups ! Taisi unohtua Viesti o_O"; exit;} ?> <?php header ("location: index.php") ?>
Nii tota kysyisin miten saisin tos index.php:s uusimman viestin ekaks ? ja sit et miten saisin et ku kirjottais nimen ja viestin nii toi nimeä ei tarttis kirjottaa uuestaa
Mod. edit: kooditagit
Kannattaa lukaista Antin PHP-opas ja erityisesti sen vieraskirja-esimerkki. Mutta ensimmäiseksi, tuo tiedontallennusmenetelmäsi on vääränlainen: ei html:ää datan sekaan.
konsta93 kirjoitti:
Nii tota kysyisin miten saisin tos index.php:s uusimman viestin ekaks ?
Nykyisellä systeemilläs et oikein millään.
Muuta sitä niin, että kirjoitat viestit tuohon viestit.txt:n jokaisen omalle rivilleen ja sitten sen sijaan, että suoraan liität viestit.txt:n indeksisivuun, luet sen rivit taulukkoon, ja tulostat ne käänteisessä järjestyksessä.
$av = fopen('viestit.txt', 'a'); // Huomaa, että käyttäjän antamasta tekstistä pitää siivota kaikki rivinvaihtomerkit pois fputs($av, str_replace(array("\r\n", "\r", "\n"), '', $uusirivi) . "\n"); fclose($av);
konsta93 kirjoitti:
et miten saisin et ku kirjottais nimen ja viestin nii toi nimeä ei tarttis kirjottaa uuestaa
Eikös selaimet tarjoudu muistamaan noihin lomakekenttiin kirjoitetun sisällön?
Muutin sen sellaseks ja se toimi kiitos :D
Aihe on jo aika vanha, joten et voi enää vastata siihen.