Uploudaa, muokkaa sopivaksi, testaa.
Luo tiedosto kommentti.txt ja sille 666 oikat.
kommentti.php
<html> <head> <title>Kommentit</title> </head> <body> <?php $datafile = "kommentit.txt"; // Missä viestit ovat print ("<table>"); $file = "$datafile"; $open = file($file); $count = count($open); for ($p=0; $p<$count; $p++) { $entry = explode("|", $open[$p]); print ("<tr><td><a href=\"mailto:$entry[1]\">$entry[0]</a> kommentoi:</td><td>$entry[2]</td></tr>"); } ?> </table> <?php $mail = stripslashes($mail); $mail = ereg_replace("<", "<", $mail); $mail = ereg_replace(">", ">", $mail); $nimi = stripslashes($nimi); $nimi = ereg_replace("<", "<", $nimi); $nimi = ereg_replace(">", ">", $nimi); $msge = stripslashes($msge); $msge = ereg_replace("<", "<", $msge); $msge = ereg_replace(">", ">", $msge); $palaute= "$nimi|$mail|$msge "; // Eli ensimmäisenä tulee nimi, sitten mail ja viesti. ?> <br> <table> <form action="kommentit.php?sivu=kirjoita" method="get"> <tr><td>Nimi:</td><td><input type="text" name="nimi" maxlenght="20"></td></tr> <tr><td>Sähköposti:</td><td><input type="text" name="mail" maxlenght="20"></td></tr> <tr><td>Kommentti:</td><td><input type="text" name="msge" maxlength="100"></td></tr> </table> <input type="submit" value="Kirjoita"> <input type="reset" value="Tyhjennä"> </form> <?php if ($msge != "") { $fo = fopen($datafile, "r+"); $vanha=fread($fo, filesize($datafile)); fseek($fo, 0); fwrite($fo, "{$palaute}${vanha}"); fclose($fo); print ("<p><meta http-equiv=\"refresh\" content=\"0;url=kommentit.php\">Odota hetki...</p>"); } ?> </body> </html>
kommentti.txt
Nimi|e-mail|kommentti
Tämmönen oli jo..
$file = "$datafile";
Mitä hyötyä tostakin on?
\n toimiiko?
Joo, niin olikin, én huomannut.
ereg_replace on tässä ihan turha ja hitaampi kuin str_replace
En suosittele.
Mutta ihan käyttökelvollinen jos saisi ees toimimaan.
Kyllä se ainakin mulla toimii! ja hyvä skripti, mutta tarkistappas tosta ylhäältä toi tiedoston nimi ja sitten koodia :P
hyvinhän se toimii en kyllä tiedä miten käytännöllinen ja piti säätää noita tiedosto nimiä:
***kommentti.php -> mut sit tuol alhaal lukee
<p><meta http-equiv=\"refresh\" content=\"0;url=kommentit.php\">Odota hetki...</p>
jaa muutenki tiedostonimet miten sattuu :P
Jos nyt ymmärsin oikein et toi on html tagien estäminen:
<?php $mail = stripslashes($mail); $mail = ereg_replace("<", "<", $mail); $mail = ereg_replace(">", ">", $mail); $nimi = stripslashes($nimi); $nimi = ereg_replace("<", "<", $nimi); $nimi = ereg_replace(">", ">", $nimi); $msge = stripslashes($msge); $msge = ereg_replace("<", "<", $msge); $msge = ereg_replace(">", ">", $msge); ?>
niin kannattaa käyttää htmlspecialchars();
;)
cj, tossa on html tagien ja lähinnä php:n avaamisen esto:
<?php
?>
tulee:
<?php
?>
oisko demoa tästä?
<tr><td>Nimi:</td><td><input type="text" name="nimi" maxlenght="20"></td></tr> <tr><td>Sähköposti:</td><td><input type="text" name="mail" maxlenght="20"></td></tr> <tr><td>Kommentti:</td><td><input type="text" name="msge" maxlength="100"></td></tr>
Tuo ei pahemmin toimi kun kahdessä ylimmässä on: "maxlengHT" ja alimmaisessa on oikein eli: "maxlengTH"... Korjaapa virhe!
Pienellä muokkauksella hyvä, toimiva, ja asiansa ajava skripti.
Miksei mulla toimi kunnolla? miks tonne ylös tulee lukeen noita html tagien estoja?
Php-koodi pitää siirtää palvelimelle internettiin, ennen kuin ajat sen. Et voi ajaa sitä omalta koneeltasi, ellet ole asentanut siihen php:ta.
Moro! Kokeilin tätä mutta tulee tämmöstä:
http://mezumsnet.com/kommentti.php
Annoin sille kommentti.txt filulle sen 644 jutun vai mikä lieneekää. Miten ton nyt sit saatoimimaan. Kiitos jo etukäteen! :D
Hieno. :/
Aihe on jo aika vanha, joten et voi enää vastata siihen.