Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: PHP: Pieni kommenttijärjestelmä

Sivun loppuun

peraa [12.10.2004 16:52:40]

#

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>");
?>

peraa [12.10.2004 16:54:14]

#

Nonni. kommentteja?

peraa [12.10.2004 16:59:44]

#

Toimiva esimerkki osoitteessa:
http://koti.mbnet.fi/peraah/esim_kommenttijärjestelmä/kommentit.php

tsuriga [14.10.2004 21:11:28]

#

Jotain kielioppivirheitä, eiköhän tuosta selvän saane kuitenkin :).

$fontcolorwhite="<font color=\"white\">";

en ainakaan mozilla navigatorilla löytäny tuota kuin configista.

thekoodaaja [14.10.2004 21:27:52]

#

lainaus:

YOU MAY CHANCE THESE SETTINS

CHANGE

EDIT: Upea hiaano osaisimpa itekkin tehä tälläsen

Meitsi [16.10.2004 12:24:26]

#

lainaus:

// these settings chance the look of the page

Olisiko parempi:
These settings affect the outlook of the page

akx [16.10.2004 14:38:48]

#

Onnistuinpas hajottamaan systeemin. "<!--" kommentiksi. :D

SysRq868 [17.10.2004 14:04:53]

#

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?

ville-v [19.10.2004 20:22:50]

#

Kannattaisikohan antaa comment.txt :lle nimeksi comment.php :))

SysRq868 [24.10.2004 12:27:55]

#

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.

ville-v [10.02.2005 11:26:43]

#

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?!

SysRq868 [08.03.2005 10:08:02]

#

comment.php -> koodi toiminnassa
comment.txt -> koodi itse

kun PHP ajetaan serverillä, ei sourcea katselemalla näe itse koodia.

miiro [20.05.2005 20:29:06]

#

CHANCE = CHANGE! (you may chance this...)

miiro [20.05.2005 20:29:38]

#

huppita joku olikin jo käyttänyt

nyjork94 [25.11.2005 22:35:47]

#

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&gt;</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">&lt; <b>
Lis&auml;&auml; 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&auml;hk&ouml;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>

nyjork94 [25.11.2005 22:36:23]

#

mikä koosi tonne pitäs viel laittaa
...lähettäkää sähköpostiin nyjork@mbnet.fi

nyjork94 [26.11.2005 08:40:48]

#

koodi siis

AakenStein [07.07.2006 21:57:20]

#

Kyl se toimii...ihan ok koodi...

ByMikkis [10.03.2009 09:53:08]

#

Pieniä kielioppi virheitä (joista en välitä)...mutta toimiva koodi, kiitos!

Wee [06.07.2009 01:42:29]

#

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ä?

pake10 [15.11.2009 13:05:02]

#

Tuo bugaa niin, että kun on lähettänyt viestin ja painelee refreshiä, niin se viesti tallentuu uudelleen ja uudelleen...


Sivun alkuun

Vastaus

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

Tietoa sivustosta