Kirjautuminen

Haku

Tehtävät

Kilpailu

Putka Open 2025
2. kierros:
26.9. klo 18 – 28.9. klo 23

Keskustelu: Nettisivujen teko: Vieraskirja

juhaz [12.07.2004 00:26:56]

#

Kun koodi on tälläinen:

<?php

    /*
     *  Guestbook is coded by Joni Järvinen a.k.a Jope <jope@psykoosi.org>
     *  More scripts can be found at http://jope.psykoosi.org/ (Finnish site)
     *
     *  This is a simple guestbook built on flatfile system so there is no
     *  need for SQL database.
     *
     *  Guestbook is very easy to use; just include this page into some of
     *  your pages and it will automatically work.
     *
     *  This guestbook could be optimized a little. For example when I
     *  read data into array from datafile:
     *    $data = Unserialize(Implode("", File($datafile))); ->
     *    $data = Unserialize(File_Get_Contents($datafile));
     *
     *  This is because file_get_contents() is pretty new function and
     *  everyone doesn't have it so you can edit the script by yourself.
     *
     *  Usage (Right way to use this guestbook):
     *
     *    <?php
     *      Ob_Start();
     *    ?>
     *    <html>
     *    <head><title>My guestbook</title></head>
     *    <body>
     *    <?php include ("gusetbook.php"); ?>
     *    </body>
     *    </html>
     *    <?php
     *      $data = Ob_Get_Contents();
     *      Ob_End_Clean();
     *      echo $data;
     *    ?>
     *
     */

    // File where guestbooks data is saved. (no need to change this)
    $datafile = "guestbook.dat";

    // Do NOT edit unless you know what you're doing!
    $Qstring = preg_replace("/&?act=(write|save|read)/i", "", $_SERVER["QUERY_STRING"]);
    $address = ($Qstring == "") ? "http://" . $_SERVER["HTTP_HOST"] . $_SERVER["PHP_SELF"] : "http://" . $_SERVER["HTTP_HOST"] . $_SERVER["PHP_SELF"] . "?" . $Qstring;
    if ($_GET["act"] == "write") {
        echo "<h2>Kirjoita vieraskirjaan!</h2>";
        if ($_GET["error"] == 1) {
            echo "<font color=\"#FF0000\">Täytä vähintään nimi ja viesti!</font>\n";
        }
        if ($Qstring == "") {
            echo "<form action=\"$address?act=save\" method=\"POST\">";
        } else {
            echo "<form action=\"$address&act=save\" method=\"POST\">";
        }
        echo "<small><b>Nimi:</b></small><br>
              <input type=\"text\" size=\"25\" maxlength=\"50\" name=\"nimi\"><br>
              <br>
              <small><b>Kotisivut:</b></small><br>
              <input type=\"text\" size=\"25\" maxlength=\"50\" name=\"kotisivut\" value=\"http://\"><br>
              <br>
              <small><b>Sähköposti:</b></small><br>
              <input type=\"text\" size=\"25\" maxlength=\"50\" name=\"email\"><br>
              <br>
              <small><b>Viestisi:</b></small><br>
              <textarea rows=\"6\" cols=\"36\" name=\"viesti\"></textarea><br>
              <br>
              &nbsp;<input type=\"submit\" value=\" Tallenna \">&nbsp;&nbsp; <input type=\"checkbox\" name=\"bbcode\" value=\"disabled\"> Poista BBcode käytöstä tässä viestissä
              </form>";
    }
    else if ($_GET["act"] == "save") {
        if (!file_exists($datafile)) {
            if (!@touch($datafile)) {
                die ("Couldn't create datafile!");
            }
            if (!@chmod($datafile, 0777)) {
                die ("Couldn't chmod datafile!");
            }
        }
        if ($_POST["nimi"] != "" AND $_POST["viesti"] != "") {
            $data = Unserialize(Implode("", File($datafile)));
            $bbcode = ($_POST["bbcode"] == "disabled") ? "disabled" : "enabled";
            $data[] = Array(
                "nimi" => $_POST["nimi"],
                "kotisivut" => $_POST["kotisivut"],
                "email" => $_POST["email"],
                "viesti" => $_POST["viesti"],
                "aika" => time(),
                "bbcode" => $bbcode
            );
            $fp = @fopen($datafile, "w");
            if ($fp) {
                fwrite ($fp, Serialize($data));
                fclose ($fp);
                if ($Qstring == "") {
                              } else {
                             }
            } else {
                die ("Couldn't open datafile!");
            }
        } else {
            if ($Qstring == "") {

            } else {

            }
        }
    }
    else if ($_GET["act"] == "read") {
        if (file_exists($datafile)) {
            $data = Unserialize(Implode("", File($datafile)));
            if (sizeof($data) > 0 AND Is_Array($data)) {
                echo "<h2>Lue vieraskirjaa</h2>";
                $data = Array_reverse($data);
                for ($i = 0; $i < sizeof($data); $i++) {
                    $nimi = StripSlashes(HtmlEntities($data[$i]["nimi"]));
                    $kotisivut = StripSlashes(HtmlEntities($data[$i]["kotisivut"]));
                    $email = StripSlashes(HtmlEntities($data[$i]["email"]));
                    $viesti = ($data[$i]["bbcode"] == "disabled") ? StripSlashes(HtmlEntities($data[$i]["viesti"])) : StripSlashes(BBcode(HtmlEntities($data[$i]["viesti"])));
                    $aika = Date("d.m.Y / H:i:s", $data[$i]["aika"]);
                    echo "<b>$nimi @ $aika (<a href=\"$kotisivut\">WWW</a> | <a href=\"mailto:$email\">E-mail</a>)</b>
                          <hr>".
                          nl2br($viesti)."
                          <br>
                          <br>
                          <br>";
                }
            } else {
                echo "Ei viestejä";
            }
        } else {
            echo "Ei viestejä";
        }
    } else {
        echo "<h2>Vieraskirja</h2>";
        if ($Qstring == "") {
            echo "<center><br><br><br><br><a href=\"$address?act=write\">Kirjoita vieraskirjaan</a> | <a href=\"$address?act=read\">Lue vieraskirjaa</a></center>";
        } else {
            echo "<center><br><br><br><br><a href=\"$address&act=write\">Kirjoita vieraskirjaan</a> | <a href=\"$address&act=read\">Lue vieraskirjaa</a></center>";
        }
    }
    function BBcode ($data) {
        $data = preg_replace("/\[(\/?)(b|u|i|s|strike|blockquote|code|pre)\]/i", "<$1$2>", $data);
        $data = preg_replace("/\[url\](.*)\[\/url\]/i", "<a href=\"$1\" target=\"_blank\">$1</a>", $data);
        $data = preg_replace("/\[url=(.*)\](.*)\[\/url\]/i", "<a href=\"$1\" target=\"_blank\">$2</a>", $data);
        $data = preg_replace("/\[img=(.*)\](.*)\[\/img\]/i", "<IMG SRC=\"$1\">", $data);
     return $data;
    }
?>

Tulee varmaan vähän pitkäksi, mutta mä ihmettelen, että mutä tonne perään pitää lisätä, jotta vieraskirjaan saisi (kuvan nimi puuttuu!) kuvanosoite/kuva.jpg[/img] BBcode tagin?

Kuten näette niin lisäsin loppuun jo itse sillaisen kuin

$data = preg_replace("/\[img=(.*)\](.*)\[\/img\]/i", "<IMG SRC=\"$1\">", $data);

mutta se ei toimi, kun se ei näytä sitä kuvaa... pelkästään tekstin (kuvan nimi puuttuu!) kuvanosoite[/img] vaikka sen ei pitäisi sitä näyttää vaan kuva.

Niko [12.07.2004 01:05:20]

#

Toimiskohan:

$data = preg_replace("/\[img](.*)\[\/img\]/i", "<IMG SRC=\"$1\">", $data);
     return $data;

Vastaus

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

Tietoa sivustosta