Samanlainen kun alhaalla!
index.php
<form action="kommentti.php" method="post"> Nimi: <br> <input type="text" name="nimi"><br> Sähköposti: <br> <input type="text" name="email"><br> Kommentti:<br> <textarea name="kommentti"></textarea><br> <input type="submit" value="Kommentoi" name="ok"> </form> <br> <?php include ("kommentit.txt"); ?>
kommentti.php
<?php if (isset ($ok)) { $tiedosto="kommentit.txt"; $kommentti = str_replace("<", "<", $kommentti); $kommentti = str_replace(">", ">", $kommentti); $kommentti = str_replace("\n", "<br>", $kommentti); $nimi = str_replace("<", "<", $nimi); $nimi = str_replace(">", ">", $nimi); $t=fopen($tiedosto, "a"); fwrite($t, "Lähettäjä: <a href=mailto:". $email ."</a>". $nimi ."</a> <br>"); fwrite($t, "Lähetysaika: ". date("j.n.Y H:i:s")); fwrite($t, "<br>Kommentti: ". $kommentti ."<br>"); fclose($t); ?> <script>document.location="index.php"</script> <?php } ?>
Tossa lisäys jutussa on joku bugi!
Muuta tää rivi:
$kommentti = str_replace(""n", "<br>", $kommentti);
Tämmöseks:
$kommentti = str_replace("\n", "<br>", $kommentti);
Niin pitäis toimii!
Ja tää rivi:
fwrite($t, "Lähettäjä: <a href=mailto:". $email ."</a>". $nimi ."</a> <br>");
Tämmöseks:
fwrite($t, "Lähettäjä: <a href=mailto:". $email .">". $nimi ."</a> <br>");
Tuohon voisi olla järkevää lisätä HTML -koodin esto. Eli lisätkää nämä rivit ennen kuin tuo kommentit.txt avataan:
$nimi = stripslashes(htmlspecialchars($nimi)); $osoite = stripslashes(htmlspecialchars($email)); $kuvaus = stripslashes(htmlspecialchars($kommentti));
Hieman typoja eli muuttakaa $osoite --> $email ja $kuvaus --> $kommentti
Joo, siinä oli html-esto mutku toi antin lisäys ei oo paras!
Tässä ei alleviivata mutta tyylikästä olisi laittaa lomake ja prosessori eri iedostoon ja tarkastellä mistä muuttujat tulee, viittaaja on oikein(ei ole tehty muualla lomaketta joka tuubaa työntaa) ja muuttujat eivät ole url:ssä (refresh, F5). Näin saadaan vähän rajoitettua tulvaamista (flood). Myöskään samaa dataa ei tulisi tunkea suurissa määrin todelisen tiedon joukkoon joten voitaisiin tarkastaa onko ko. infoa juuri lisätty esim. jonkinlaisesta lokista, ja rajoittaa saman IP lähetys esim kertaan minuutissa. Näillä korjauksilla!
asdas
asdas
siis pitääkö tolle tekstitiedostolle antaa 777 tai 666 oikat?
Muutenhan tuo näyttää pelittävän mutta jos tarkemmin ajattelee ni se tulostaa epäloogisesti tiedostot vanhimmast uusimpaan.. niin että uusin on alimmainen...
Eipä järkeä siinä ole..
Siis uusinhan kuuluu olla alimmaisena.... vai?
Toimiiko tuo muka. Aina kun kokeilen tuota, niin siihen tulee sivu, joka häviää melkein heti, mutta siinä lukee selväsi jotakin "Warning" monta kertaa.
Kokeilin tuota, mutta minulla se rupesi jotenkin looppaamaan. Avasin index.php:n ja se tulosti äärettömästi niitä kommenttiformeja sinne. Mutjoo, ehkä tein jotain väärin :-D
Aihe on jo aika vanha, joten et voi enää vastata siihen.