Tämä kommenttijärjestelmä tarvitsee vain yhden tiedoston (itsensä) ja sen voi laittaa minne tahansa html koodin sekaan.
Kun laittaa html koodin sekaan, vaihtaa nimeä, tai muuten muuntelee, pitää muuttaa $tiedostonimi ja $tiedostonpituus muuttujat.
Tein tämän aluksi englantilaiselle sivulle joten kommentit on kirjoitettu englanniksi
<?php echo("<table><tr><td>"); //========================================================================== // YOU MAY CHANCE THESE SETTINS $tiedostonimi='kommentit.php';//THE NAME OF THIS FILE must be .php $yllapitaja='i-8@mbnet.fi'>//if an error occurs, a notice is send to this e-mail $tiedostonpituus='226';//The length of this file (messages come after the code) // these settings chance the look of the page $nimifont="<font face=\"Verdana\" size=\"2\"><b>"; $loppunimi="</b></font>"; $aikafont="<font face=\"Verdana\" size=\"2\">"; $loppuaika="</font>"; $viestifont="<font face=\"Verdana\" size=\"2\">"; $loppuviesti="</font>"; $fontcolorwhite="<font color=\"white\">"; //============================================================================= //============================================================================= // puts the variables from the form to these variables $nimi = $_POST['nimi']; $email = $_POST['email']; $viesti = $_POST['viesti']; $varmistus = $_POST['varmistus']; $aika = date("d.m.y H:i:s"); //==================================================================================== //==================================================================================== // SAVING MESSAGE if($varmistus=='lahetetty') { // no HTML-tags strip_tags($nimi); strip_tags($email); strip_tags($viesti); // chances enters to text $viesti = ereg_replace(" ", "//&&uusrivi", $viesti); if(strlen($kommentti) > 820)die("Viestisi on liian pitkä! <a href=\"kommentitindex.php\">Takaisin</a>."); if($email=='ei pakollinen') { $email=''; } if(!$nimi|!$viesti) { if(!$nimi) { echo ("<A href=\"$tiedostonimi\">Et kirjoittanut nimeä</A>"); exit; } if(!$viesti) { echo ("<A href=\"$tiedostonimi\">Et kirjoittanut viestiä</A>"); exit; } } else { $filename = "$tiedostonimi"; $content = "\n<!--$nimi||||$email||||$viesti||||$aika-->"; $fp = fopen($filename, "a"); $fw = fwrite( $fp, $content ); fclose( $fp ); if(!$fw){ echo "tiedostoon ei voitu kirjoittaa/n Asiasta ilmoitettu ylläpitäjille"; $message = "Keskustelupalstallasi on tapahtunut virhe./n Tiedostoon ei voitu kirjoittaa"; $from = "Keskustelupalsta"; $to = "$yllapitaja"; $subject = "Keskustelupalstallasi on tapahtunut virhe"; $headers = "From: $from"; mail($to,$subject,$message,$headers); } else echo "<H4>Kommentti lisätty</H4>"; } } //==================================================================================== //==================================================================================== // SHOWING MESSAGES $arrayTiedosto = file("$tiedostonimi"); //Reads this file in memory $varibitti='a'; echo (" <center> <table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\"> "); $viesteja=count($arrayTiedosto); for($i=$tiedostonpituus;$i<$viesteja/*count($arrayTiedosto)*/;$i++) //Puts the contents of the messages in riht order { $valiaikainen = explode("||||", $arrayTiedosto[$i]); $nimi=$valiaikainen[0]; $email=$valiaikainen[1]; $viesti=$valiaikainen[2]; $aika=$valiaikainen[3]; $aika = ereg_replace(" ", "", $aika); $nimi = ereg_replace("<!--", "", $nimi); $aika = ereg_replace("-->", "", $aika); if($email!=''){ $emaillaheta="<A href=\"mailto:$email\">"; } else{ $emaillaheta=''; } if($varibitti=='a') { $varibitti='b'; $vari='#dfdfdf'; } elseif($varibitti=='b') { $varibitti='a'; $vari='#f1f1f1'; } // chances the text wich means new row to <br> $viesti = ereg_replace("//&&uusrivi", "<br>", $viesti); echo (" <tr bgcolor=\"$vari\"> <td width=\"200\" valign=\"top\"> $emaillaheta $nimifont$nimi$loppunimi</a><br> $aikafont$aika$loppuaika </td> <td valign=\"middle\"> $viestifont$viesti$loppuviesti </td> </tr> "); } //Puts the local time to a variable for showin it when writing a message $aika = date("d.m.y H:i:s"); $vari='#dfdfdf'; //==================================================================================== //==================================================================================== // MESSAGE FORM echo (" </table> </center> <form action=\"$tiedostonimi\" method=\"post\"> $nimifont Lisää Kommentti$loppunimi <table width=\"100%\" cellspacing=\"0\" cellpadding=\"3\" border=\"0\" bgcolor=\"$vari\"> <tr bgcolor=\"$vari\"> <td width=\"250\" valign=\"top\"> <table> <tr> <td align=\"right\"> $nimifont Nimi : $loppunimi </td> <td> <input type=\"text\" value=\"\" name=\"nimi\"> </td> </tr> <tr> <td align=\"right\"> $nimifont Sähköposti : $loppunimi </td> <td> <input type=\"text\" value=\"ei pakollinen\" name=\"email\"> </td> </tr> <tr> <td colspan=\"2\"> $aikafont$aika$loppuaika </td> </tr> </table> </td> <td valign=\"middle\"> <table> <tr> <td> $nimifont Viesti:$loppunimi<br> <table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"> <tr> <td width=\"100%\"> </td> <textarea cols=\"50\" rows=\"4\" name=\"viesti\" border=\"2\"></textarea><br> </td> </tr> <tr> <td width=\"100%\"> </td> <td> <input type=\"hidden\" name=\"varmistus\" value=\"lahetetty\"> <input type=\"submit\" value=\"Kommentoi\" name=\"kommentoi\" border=\"2\"> </td> </tr> </table> </table> </td> </tr> </table> </td> </tr> </table> </form> "); echo("</td></tr></table>"); ?>
Nonni. kommentteja?
Toimiva esimerkki osoitteessa:
http://koti.mbnet.fi/peraah/
Jotain kielioppivirheitä, eiköhän tuosta selvän saane kuitenkin :).
$fontcolorwhite="<font color=\"white\">";
en ainakaan mozilla navigatorilla löytäny tuota kuin configista.
lainaus:
YOU MAY CHANCE THESE SETTINS
CHANGE
EDIT: Upea hiaano osaisimpa itekkin tehä tälläsen
lainaus:
// these settings chance the look of the page
Olisiko parempi:
These settings affect the outlook of the page
Onnistuinpas hajottamaan systeemin. "<!--" kommentiksi. :D
Ajattelin lisätä tuon jokaiseen arvosteluun ym... mutta 5 kt lisää joka tiedostoon ei innosta... joten... yksi comment.php.
comment.php:n lukemismoduuli:
for($i=$tiedostonpituus;$i<$viesteja/*count($arrayTiedosto)*/;$i++) { $valiaikainen = explode("||||", $arrayTiedosto[$i]); $nimi=$valiaikainen[0]; $email=$valiaikainen[1]; $viesti=$valiaikainen[2]; $aika=$valiaikainen[3]; $aika = ereg_replace(" ", "", $aika); $nimi = ereg_replace("<!--", "", $nimi); $valiaikainen[4] = ereg_replace("-->", "", $valiaikainen[4]); if($email!=''){ $emaillaheta="<A href=\"mailto:$email\">"; } else{ $emaillaheta=''; } if($varibitti=='a') { $varibitti='b'; $vari='#dfdfdf'; } elseif($varibitti=='b') { $varibitti='a'; $vari='#f1f1f1'; } $viesti = ereg_replace("//&&uusrivi", "<br>", $viesti); if ($valiaikainen[4] == $this){ echo (" <tr bgcolor=\"$vari\"> <td width=\"200\" valign=\"top\"> $emaillaheta $nimifont$nimi$loppunimi</a><br> $aikafont$aika$loppuaika </td> <td valign=\"middle\"> $viestifont$viesti$loppuviesti </td> </tr> "); } else { echo ""; } }
...comment.php:n kirjoitusjälki itseensä:
<!--ha||||||||ho||||16.10.04 09:49:17||||1--> <!--hip||||hap||||huu||||17.10.04 13:36:30||||2--> <!--h||||||||d||||17.10.04 13:44:19||||1--> <!--hh||||||||dd||||17.10.04 13:46:38||||2--> <!--jjj||||||||dd||||17.10.04 13:47:11||||2-->
...ja default tiedosto, jonka avulla voi saada tuon toimimaan niin, että silti commentti kirjoittelee itseensä:
Teksti<br><br> <?php $this='1'; $tiedostonimi='jeejee.php'; include("comment.php"); ?>
Käytännössä: http://koti.mbnet.fi/funfonex/scriptemp/comment.txt, http://koti.mbnet.fi/funfonex/scriptemp/jeejee.php, ja http://koti.mbnet.fi/funfonex/scriptemp/jaajaa.php.
Miksei toimi?
Kannattaisikohan antaa comment.txt :lle nimeksi comment.php :))
no ehkäpä php:n koodi ei näy, jossei se ole .txt. Jos taas katsot tuota comment.txt:tä huomaat, että siellä on $tiedostonimi comment.PHP.
lainaus:
no ehkäpä php:n koodi ei näy, jossei se ole .txt. Jos taas katsot tuota comment.txt:tä huomaat, että siellä on $tiedostonimi comment.PHP.
Mitä sä tolla tarkoitat? Jos tekstitiedostossa tiedostonimi-muuttujassa tiedostopääte on .php, niin se on myös tiedoston pääte?!
comment.php -> koodi toiminnassa
comment.txt -> koodi itse
kun PHP ajetaan serverillä, ei sourcea katselemalla näe itse koodia.
CHANCE = CHANGE! (you may chance this...)
huppita joku olikin jo käyttänyt
miksköhän mul ei näy ne viestit missään missään mitä testasin....täs on se mun php kiel juttu
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <?php $this='1'; $tiedostonimi='keskustelu.htm'; include("keskustelu.htm"); ?> </head> <input type="hidden" name="viestit" value="http://koti.mbnet.fi/nyjork/comment.htm"> <body> <a href="http://koti.mbnet.fi/nyjork/comment.htm"><url></url></a><a href="http://koti.mbnet.fi/nyjork/comment.htm">viestit></a> <br> <br> <table> <tbody> <tr> <td> <center> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tbody> <tr bgcolor="#dfdfdf"> <td width="200"> </td> <td> </td> </tr> </tbody> </table> </center> <form method="nyjork@mbnet.fi" action="comment.htm" messages="comment.htm">< <b> Lisää Kommentti</b> <table bgcolor="#dfdfdf" border="0" cellpadding="3" cellspacing="0" width="100%"> <tbody> <tr bgcolor="#dfdfdf"> <td valign="top" width="250"> <table> <tbody> <tr> <td align="right"> <font face=""> <b> Nimi : </b></font> </td> <td> <input value="" name="nimi" type="text"> </td> </tr> <tr> <td align="right"> <font face="Verdana" size="2"><b>Sähköposti : </b></font> </td> <td> <input value="ei pakollinen" name="email" type="text"> </td> </tr> <tr> <td colspan="2"> <font face="Verdana" size="2">25.11.05 21:32:49</font> </td> </tr> </tbody> </table> </td> <td valign="keskustelu.htm"> <table> <tbody> <tr> <td> <font face="Verdana" size="2"><b>Viesti:</b></font><br> <textarea border="2" name="viesti" rows="4" cols="50"></textarea><br> <table border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td width="100%"> </td> </tr> <tr> <td width="100%"> </td> <td> <input name="varmistus" value="lahetetty" type="hidden"> <input value="Kommentoi" name="kommentoi" border="2" type="submit"> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> </form> </td> </tr> </tbody> </table> <div style="text-align: center;"></div> <!--ha||||||||ho||||16.10.04 09:49:17||||1--> <!--hip||||hap||||huu||||17.10.04 13:36:30||||2--><!--h||||||||d||||17.10.04 13:44:19||||1--><!--hh||||||||dd||||17.10.04 13:46:38||||2--><!--jjj||||||||dd||||17.10.04 13:47:11||||2--> </body> </html>
mikä koosi tonne pitäs viel laittaa
...lähettäkää sähköpostiin nyjork@mbnet.fi
koodi siis
Kyl se toimii...ihan ok koodi...
Pieniä kielioppi virheitä (joista en välitä)...mutta toimiva koodi, kiitos!
Huvittavaa, että kommentointi on englanniksi, mutta koodissa muuttujien nimet, sekä syöttöruudut ovat suomeksi. Eipä tästä kukaan ulkomaalainen hyötyisi, sillä ei osaisi suomenkielistä osioa kääntää. Mikset vain samantien kääntänyt kommenttejakin tai edes poistanut niitä?
Tuo bugaa niin, että kun on lähettänyt viestin ja painelee refreshiä, niin se viesti tallentuu uudelleen ja uudelleen...
Aihe on jo aika vanha, joten et voi enää vastata siihen.