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>
<input type=\"submit\" value=\" Tallenna \"> <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.
Toimiskohan:
$data = preg_replace("/\[img](.*)\[\/img\]/i", "<IMG SRC=\"$1\">", $data); return $data;
Aihe on jo aika vanha, joten et voi enää vastata siihen.