2 /*-----------------------------------------------------
\r
4 Copyright (c) 2001 - 2005, Ketut Aryadana
\r
7 Script name : ArdGuest
\r
9 Website : http://www.promosi-web.com/script/guestbook/
\r
10 Email : ketutaryadana@yahoo.co.id
\r
12 By using this program you agree to indemnify the author (Ketut Aryadana) from any liability
\r
13 caused by mis-use, unauthorised access, loss of data, or financial losses that occur
\r
14 as a result of installing or using this product.
\r
15 ------------------------------------------------------*/
\r
17 //--Change the following variables
\r
19 //Title of your guestbook
\r
20 $title = "Memorial for Carlos Gomes De Faria";
\r
21 //Change "admin" with your own password. It's required when you delete an entry
\r
22 $admin_password = "teafor6265";
\r
23 //Enter your email here
\r
24 $admin_email = "Andrew@DeFaria.com";
\r
26 $home = "http://defaria.com";
\r
27 //Send you an email when someone add your guestbook, YES or NO
\r
29 //Your Operating System
\r
30 //For Windows/NT user : WIN
\r
31 //For Linux/Unix user : UNIX
\r
33 //Maximum entry per page when you view your guestbook
\r
34 $max_entry_per_page = "10";
\r
35 //Name of file used to store your entry, change it if necessary
\r
36 $data_file = "dad.dat";
\r
37 //Maximum entry stored in data file
\r
38 $max_record_in_data_file = "300";
\r
39 //Maximum entries allowed per session, to prevent multiple entries made by one visitor
\r
40 $max_entry_per_session = 2;
\r
41 //Color & font setting
\r
42 $background = "#555555";
\r
43 $table_top = "#D3B68E";
\r
44 $table_content_1a = "#EDEEE8";
\r
45 $table_content_1b = "#E4E4E4";
\r
46 $table_content_2a = "#FFF8F0";
\r
47 $table_content_2b = "#FFEFDF";
\r
48 $table_bottom = "#D3B68E";
\r
49 $table_border = "#000000";
\r
50 $title_color = "yellow";
\r
52 $visited_link = "white";
\r
53 $active_link = "red";
\r
54 $font_face = "verdana";
\r
55 $message_font_face = "arial";
\r
56 $message_font_size = "2";
\r
58 //-- Don't change bellow this line unless you know what you're doing
\r
60 $do = isset($_REQUEST['do']) ? trim($_REQUEST['do']) : "";
\r
61 $id = isset($_GET['id']) ? trim($_GET['id']) : "";
\r
62 $page = isset($_GET['page']) ? $_GET['page'] : 1;
\r
63 $self = $_SERVER['PHP_SELF'];
\r
65 if (!file_exists($data_file)) {
\r
66 echo "<b>Error !!</b> Can't find data file : $data_file.<br>";
\r
69 if ($max_record_in_data_file != "0") {
\r
70 $f = file($data_file);
\r
73 if ($j > $max_record_in_data_file) {
\r
74 $rf = fopen($data_file,"w");
\r
75 if (strtoupper($os)=="UNIX") {
\r
76 if (flock($rf,LOCK_EX)) {
\r
77 for ($i=0; $i<$max_record_in_data_file; $i++) {
\r
78 fwrite($rf,$f[$i]);
\r
83 for ($i=0; $i<$max_record_in_data_file; $i++) {
\r
84 fwrite($rf,$f[$i]);
\r
92 $newline = (strtoupper($os) == "WIN") ? "\r\n" : "\n";
\r
95 $record = file($data_file);
\r
97 $jmlrec = count($record);
\r
100 <head><title><?=$title?></title></head>
\r
101 <body bgcolor="<?=$background?>" link="<?=$link?>" vlink="<?=$visited_link?>" alink="<?=$active_link?>" topmargin="0" marginheight="0" style="font-family:<?=$font_face?>">
\r
103 <font size="6" color="<?=$title_color?>"><b><?=$title?></b></font><br>
\r
104 <font size="2" color="<?=$title_color?>"><b><a href="index.php"><font color="<?=$title_color?>">English</font></a></b></font><br><br></center>
\r
106 <a href="/gallery/main.php?g2_view=core.ShowItem&g2_itemId=3424"><img align="right" src="/Images/Dad.jpg" border=0 width=200 height=240></a>
\r
107 <font size="2" color=white><p>Translation from English -> Portuguese courtesy of
\r
108 <a href="http://babelfish.altavista.com">http://babelfish.altavista.com</a>.</p>
\r
110 <p>Idade 81 de Charles Gomes De Faria, passada afastado março em 19,
\r
111 2006 em Santos Brasil. Originalmente de Newark N.J.he serviu no
\r
112 exército em WWII sob o comando do general Patton. Recieved uma
\r
113 descarga honorável. Mais tarde casou-se e moveu-se para crianças de
\r
114 Linden N.J.had 5. Moveu-se para Santos, Brasil em 1970 e viveu lá o
\r
115 restante de sua vida</p>
\r
117 <p>Sae atrás de seu companheiro Hilda e de suas 5 crianças de sua
\r
118 união anterior. Roxanne Johansen de Fl de Oldsmar, Raymond De Faria do
\r
119 Fl de Clearwater, Christina De Faria de Lawrenceville Ga, Andrew De
\r
120 Faria do Fl do San Jose Ca.and Cindy Anderson from.Oviedo. Deixa
\r
121 também a 5 grandchildren sua somente Sra. Mary Arminio do Fl de
\r
122 W. Palma Praia e um niece Diane Perry da irmã de St. Lucie e 3 neices
\r
123 grandes do porto.</p>
\r
125 <p>Será faltado muito muito pela família inteira. Uma massa memorial
\r
126 será prendida para ele na igreja catholic nas molas da palma, Florida
\r
127 do St. Lukes abril em 23, 2006.</p>
\r
129 <p>Se você quiser você pode deixar todo o comentário que você goste abaixo.</p></font>
\r
131 <table width="600" cellpadding="0" cellspacing="1" border="0" align=center>
\r
132 <tr bgcolor="<?=$table_border?>">
\r
134 <table width="100%" cellpadding="4" cellspacing="1" border="0">
\r
136 <td bgcolor="<?=$table_top?>" colspan="3" width="100%">
\r
137 <font size="2" color="#ffffff"><b>Click <a href="<?="$self?do=add_form&page=$page"?>">here</a> to sign the memorial</font></b>
\r
141 $jml_page = intval($jmlrec/$max_entry_per_page);
\r
142 $sisa = $jmlrec%$max_entry_per_page;
\r
143 if ($sisa > 0) $jml_page++;
\r
144 $no = $page*$max_entry_per_page-$max_entry_per_page;
\r
145 if ($jmlrec == 0) echo "<tr><td colspan=\"3\" bgcolor=\"#FFE1E1\" align=\"center\"><font size=\"3\">There are no entries yet.</font></td></tr>";
\r
148 for ($i=0; $i<$max_entry_per_page; $i++) {
\r
151 if (isset($record[$recno])) {
\r
152 $row = explode("|~|",$record[$recno]);
\r
154 $warna = $table_content_1a;
\r
155 $warna2 = $table_content_1b;
\r
158 $warna = $table_content_2a;
\r
159 $warna2 = $table_content_2b;
\r
163 <td bgcolor=\"$warna2\" align=\"center\" valign=\"top\" width=\"15\">
\r
164 <font size=\"2\">$no</font>
\r
166 <td bgcolor=\"$warna\" width=\"570\">
\r
167 <table border=\"0\" width=\"100%\">
\r
170 <font size=\"1\">$row[2]</font><br>
\r
171 <font size=\"2\"><b>$row[3]</b></font>
\r
174 echo "<td align=\"right\" valign=\"top\">";
\r
175 if (trim($row[4]) != "") {
\r
176 echo "<a href=\"mailto:$row[4]\"><img src=\"imgs/email.gif\" border=\"0\" alt=\"$row[4]\"></a>";
\r
178 if (trim($row[6]) != "" && trim($row[6]) != "http://") {
\r
179 if (ereg("^http://", trim($row[6]))) echo " <a href=\"$row[6]\" target=\"_blank\"><img src=\"imgs/homepage.gif\" border=\"0\" alt=\"$row[6]\"></a>";
\r
180 else echo " <a href=\"http://$row[6]\" target=\"_blank\"><img src=\"imgs/homepage.gif\" border=\"0\" alt=\"$row[6]\"></a>";
\r
182 echo "</td></tr></table>";
\r
183 echo "<br><table border=\"0\" width=\"100%\">
\r
184 <tr><td width=\"5\"> </td><td>
\r
185 <font size=\"2\" face=\"$message_font_face\" size=\"$message_font_size\">".stripslashes($row[5])."</font>
\r
190 echo "<td valign=\"top\" bgcolor=\"$warna2\" align=\"center\" width=\"15\">
\r
191 <a href=\"$self?do=del&id=$row[1]&page=$page\">
\r
192 <img src=\"imgs/del.gif\" alt=\"Delete entry # $no\" border=0 align=\"center\"></a>
\r
197 echo "<tr><td colspan=\"3\" bgcolor=\"$table_bottom\" align=\"center\" width=\"600\"><font size=\"2\">";
\r
198 if ($jml_page > 1) {
\r
199 if ($page != 1) echo "[<a href=\"$self?page=1\">Top</a>] "; else echo "[Top] ";
\r
201 if ($jml_page > 10) {
\r
205 } elseif ($jml_page - $page < 5) {
\r
206 $start = $jml_page - 9;
\r
212 if ($start != 1) echo "... ";
\r
213 for ($p=$start; $p<=$stop; $p++) {
\r
214 if ($p == $page) echo "<font color=\"$active_link\"><b>$p</b></font> ";
\r
215 else echo "<a href=\"$self?page=$p\">$p</a> ";
\r
217 if ($stop != $jml_page) echo "... ";
\r
218 echo "of $jml_page ";
\r
220 for ($p=1; $p<=$jml_page; $p++) {
\r
221 if ($p == $page) echo "<font color=\"$active_link\"><b>$p</b></font> ";
\r
222 else echo "<a href=\"$self?page=$p\">$p</a> ";
\r
225 if ($page != $jml_page) echo "[<a href=\"$self?page=$jml_page\">Bottom</a>]";
\r
226 else echo "[bottom]";
\r
227 } else echo "Page #1 of 1";
\r
228 echo "</font></td></tr>";
\r
242 $_SESSION['secc'] = strtoupper(substr(md5(time()),0,4));
\r
243 if (!isset($_SESSION['add'])) $_SESSION['add'] = 0;
\r
245 if (!isset($_SESSION['name'])) $_SESSION['name'] = "";
\r
246 if (!isset($_SESSION['email'])) $_SESSION['email'] = "";
\r
247 if (!isset($_SESSION['url'])) $_SESSION['url'] = "http://";
\r
248 if (!isset($_SESSION['comment'])) $_SESSION['comment'] = "";
\r
252 <title><?=$title?></title>
\r
253 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
\r
256 <body bgcolor="<?=$background?>" style="font-family:<?=$font_face?>">
\r
257 <div align="center">
\r
258 <font size="5" color="<?=$title_color?>"><b><?=$title?></b></font><br>
\r
259 <font size="1"><b><a href="<?=$home?>"><font color="<?=$title_color?>">Home</font></a> :: <a href="<?=$self?>"><font color="<?=$title_color?>">View entry</font></a></b></font>
\r
260 <form method="post" action="<?=$self?>">
\r
261 <input type="hidden" name="do" value="add">
\r
262 <table width="500" border="0" cellspacing="0" cellpadding="0" bgcolor="<?=$table_border?>">
\r
265 <div align="center">
\r
266 <table width="100%" border="0" cellspacing="1" cellpadding="5">
\r
267 <tr bgcolor="<?=$table_content_1a?>">
\r
269 <div align="right"><font size="2">*Name : </font></div>
\r
272 <input type="text" name="vname" size="30" maxlength="70" value="<?=$_SESSION['name']?>">
\r
275 <tr bgcolor="<?=$table_content_1a?>">
\r
277 <div align="right"><font size="2">Email : </font></div>
\r
280 <input type="text" name="vemail" size="30" maxlength="100" value="<?=$_SESSION['email']?>">
\r
283 <tr bgcolor="<?=$table_content_1a?>">
\r
285 <div align="right"><font size="2">Website : </font></div>
\r
288 <input type="text" name="vurl" size="30" maxlength="150" value="<?=$_SESSION['url']?>">
\r
291 <tr bgcolor="<?=$table_content_1a?>">
\r
292 <td valign="top" width="28%">
\r
293 <div align="right"><font size="2">*Comment : </font></div>
\r
296 <textarea name="vcomment" cols="40" rows="7" wrap="virtual"><?=$_SESSION['comment']?></textarea>
\r
297 <br><font size="1">* Required field</font>
\r
300 <tr bgcolor="<?=$table_content_1a?>">
\r
302 <div align="right"><font size="2">Verification Code :</font></div>
\r
305 <font size="1">Please retype this code below :</font>
\r
306 <font size="2"><b><?=$_SESSION['secc']?></b></font><br>
\r
307 <input type="text" name="vsecc" size="4" maxlength="4">
\r
310 <tr bgcolor="<?=$table_content_1b?>">
\r
312 <div align="center">
\r
314 <input type="submit" value="Submit">
\r
315 <input type="reset" value="Reset">
\r
316 <input type="button" value="Back" onclick="window.location='<?="$self?page=$page"?>'">
\r
330 <!-- End of entry form -->
\r
334 $vname = isset($_POST['vname']) ? trim($_POST['vname']) : "";
\r
335 $vemail = isset($_POST['vemail']) ? trim($_POST['vemail']) : "";
\r
336 $vurl = isset($_POST['vurl']) ? trim($_POST['vurl']) : "";
\r
337 $vcomment = isset($_POST['vcomment']) ? trim($_POST['vcomment']) : "";
\r
338 $vsecc = isset($_POST['vsecc']) ? strtoupper($_POST['vsecc']) : "";
\r
340 if (strlen($vname) > 70) $vname = substr($vname,0,70);
\r
341 if (strlen($vemail) > 100) $vemail = substr($vemail,0,100);
\r
342 if (strlen($vurl) > 150) $vurl = substr($vurl,0,150);
\r
344 $_SESSION['name'] = $vname;
\r
345 $_SESSION['email'] = $vemail;
\r
346 $_SESSION['url'] = $vurl;
\r
347 $_SESSION['comment'] = stripslashes($vcomment);
\r
349 if ($vname == "" || $vcomment == "") {
\r
350 input_err("You may left some fields.");
\r
353 if ($vemail != "" && !preg_match("/([\w\.\-]+)(\@[\w\.\-]+)(\.[a-z]{2,4})+/i", $vemail)) {
\r
354 input_err("Invalid email address.");
\r
357 if ($vurl != "" && strtolower($vurl) != "http://") {
\r
358 if (!preg_match ("#^http://[_a-z0-9-]+\\.[_a-z0-9-]+#i", $vurl)) {
\r
359 input_err("Invalid URL format.");
\r
363 $test_comment = preg_split("/[\s]+/",$vcomment);
\r
364 $jmltest = count($test_comment);
\r
365 for ($t=0; $t<$jmltest; $t++) {
\r
366 if (strlen(trim($test_comment[$t])) > 70) {
\r
367 input_err("Invalid word found on your entry : ".stripslashes($test_comment[$t]));
\r
371 if (isset($_SESSION['add']) && $_SESSION['add'] >= $max_entry_per_session) {
\r
372 input_err("Sorry, only $max_entry_per_session message(s) allowed per session.",false);
\r
373 } elseif (!isset($_SESSION['add'])) {
\r
377 if ($vsecc != $_SESSION['secc']) {
\r
378 input_err("Invalid verification code");
\r
380 //--only 2000 characters allowed for comment, change this value if necessary
\r
382 if (strlen($vcomment) > $maxchar) $vcomment = substr($vcomment,0,$maxchar)."...";
\r
384 $idx = date("YmdHis");
\r
385 $tgl = date("F d, Y - h:i A");
\r
387 $vname = str_replace("<","<",$vname);
\r
388 $vname = str_replace(">",">",$vname);
\r
389 $vname = str_replace("~","-",$vname);
\r
390 $vname = str_replace("\"",""",$vname);
\r
391 $vcomment = str_replace("<","<",$vcomment);
\r
392 $vcomment = str_replace(">",">",$vcomment);
\r
393 $vcomment = str_replace("|","",$vcomment);
\r
394 $vcomment = str_replace("\"",""",$vcomment);
\r
395 $vurl = str_replace("<","",$vurl);
\r
396 $vurl = str_replace(">","",$vurl);
\r
397 $vurl = str_replace("|","",$vurl);
\r
398 $vemail = str_replace("<","",$vemail);
\r
399 $vemail = str_replace(">","",$vemail);
\r
400 $vemail = str_replace("|","",$vemail);
\r
402 if (strtoupper($os) == "WIN") {
\r
403 $vcomment = str_replace($newline,"<br>",$vcomment);
\r
404 $vcomment = str_replace("\r","",$vcomment);
\r
405 $vcomment = str_replace("\n","",$vcomment);
\r
407 $vcomment = str_replace($newline,"<br>",$vcomment);
\r
408 $vcomment = str_replace("\r","",$vcomment);
\r
411 if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && eregi("^[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}$",$_SERVER['HTTP_X_FORWARDED_FOR'])) {
\r
412 $ipnum = $_SERVER['HTTP_X_FORWARDED_FOR'];
\r
414 $ipnum = getenv("REMOTE_ADDR");
\r
417 $newdata = "|~|$idx|~|$tgl|~|$vname|~|$vemail|~|$vcomment|~|$vurl|~|$ipnum|~|";
\r
418 $newdata = stripslashes($newdata);
\r
419 $newdata .= $newline;
\r
421 $tambah = fopen($data_file,"a");
\r
422 if (strtoupper($os)=="UNIX") {
\r
423 if (flock($tambah,LOCK_EX)) {
\r
424 fwrite($tambah,$newdata);
\r
425 flock($tambah,LOCK_UN);
\r
428 fwrite($tambah,$newdata);
\r
433 if (strtoupper($notify) == "YES") {
\r
434 $msgtitle = "Someone signed your guestbook";
\r
435 $vcomment = str_replace(""","\"",$vcomment);
\r
436 $vcomment = stripslashes($vcomment);
\r
437 $vcomment = str_replace("<br>","\n",$vcomment);
\r
438 $msgcontent = "Local time : $tgl\n\nThe addition from $vname :\n----------------------------\n\n$vcomment\n\n-----End Message-----";
\r
439 @mail($admin_email,$msgtitle,$msgcontent,"From: $vemail\n");
\r
442 $_SESSION['name'] = "";
\r
443 $_SESSION['email'] = "";
\r
444 $_SESSION['url'] = "http://";
\r
445 $_SESSION['comment'] = "";
\r
446 $_SESSION['add']++;
\r
447 $_SESSION['secc'] = "";
\r
448 redir($self,"Thank you, your entry has been added.");
\r
452 $record = file($data_file);
\r
453 $jmlrec = count($record);
\r
454 for ($i=0; $i<$jmlrec; $i++) {
\r
455 $row = explode("|~|",$record[$i]);
\r
456 if ($id == $row[1]) {
\r
459 <head><title>Delete record</title></head>
\r
460 <body bgcolor="<?=$background?>" style="font-family:<?=$font_face?>">
\r
462 <font size="4" color="<?=$title_color?>">Delete Confirmation</font>
\r
464 <table border="0" cellpadding="5" cellspacing="1" width="450">
\r
466 <td bgcolor="<?=$table_top?>">
\r
468 <font size="1"><b><?=$row[2]?></font><br><?=$row[3]?></b> - <a href="mailto:<?=$row[4]?>"><?=$row[4]?></a>
\r
469 <br><br><?=$row[5]?>
\r
470 <br><br><font size="1">IP : <?=$row[7]?></font>
\r
475 <form action="<?=$self?>" method="post">
\r
476 <input type="hidden" name="do" value="del2">
\r
477 <input type="hidden" name="id" value="<?=$id?>">
\r
478 <input type="hidden" name="page" value="<?=$page?>">
\r
479 <font color="<?=$title_color?>" size="2"><b>Admin password : </b></font> <input type="password" name="pwd">
\r
481 <font size="2" color="<?=$title_color?>"><b>»</b><input type="checkbox" name="byip" value="<?=$row[7]?>"> Delete all record that using this IP : <?=$row[7]?></font>
\r
483 <input type="submit" value="Delete"> <input type="button" value="Cancel" onclick="window.location='<?="$self?page=$page"?>'">
\r
494 $pwd = isset($_POST['pwd']) ? trim($_POST['pwd']) : "";
\r
495 $id = isset($_POST['id']) ? trim($_POST['id']) : "";
\r
496 $page = isset($_POST['page']) ? $_POST['page'] : 1;
\r
497 $byip = isset($_POST['byip']) ? $_POST['byip'] : "";
\r
499 if ($pwd != $admin_password) {
\r
500 redir("$self?page=$page","Invalid admin password !");
\r
503 $record = file($data_file);
\r
504 $jmlrec = count($record);
\r
505 for ($i=0; $i<$jmlrec; $i++) {
\r
506 $row = explode("|~|",$record[$i]);
\r
508 if ($row[1] == $id) {
\r
513 if ($row[7] == $byip) {
\r
519 $update_data = fopen($data_file,"w");
\r
520 if (strtoupper($os) == "UNIX") {
\r
521 if (flock($update_data,LOCK_EX)) {
\r
522 for ($j=0; $j<$jmlrec; $j++) {
\r
523 if ($record[$j] != "") {
\r
524 fputs($update_data,$record[$j]);
\r
527 flock($update_data,LOCK_UN);
\r
530 for ($j=0; $j<$jmlrec; $j++) {
\r
531 if ($record[$j] != "") {
\r
532 fputs($update_data,$record[$j]);
\r
536 fclose($update_data);
\r
537 redir("$self?page=$page","Record has been deleted !");
\r
542 function redir($target,$msg) {
\r
543 global $background,$font_face,$title_color;
\r
547 <meta http-equiv="refresh" content="1; url=<?=$target?>">
\r
549 <body bgcolor="<?=$background?>">
\r
550 <center><font color="<?=$title_color?>" face="<?=$font_face?>"><h3><?=$msg?></h3>Please wait...</font></center>
\r
557 function input_err($err_msg,$linkback=true) {
\r
558 global $background,$font_face;
\r
561 <head><title>Error !</title></head>
\r
562 <body bgcolor="<?=$background?>">
\r
565 <table border="1" bgcolor="#000000" cellspacing="0" cellpadding="6">
\r
567 <td bgcolor="#FFCC00" align="center">
\r
568 <font size="3" color="#000000" face="<?=$font_face?>"><b><?=$err_msg?></b><br>
\r
569 <?if ($linkback) {?>
\r
570 <font size="2">Click <a href="javascript:history.back()">here</a> and try again.</font>
\r