checkCode($mysecnum,$_SESSION['checksum']))) { printSign($name,$from,$email,$url,$comments,$sign_nosmileys,$sign_isprivate,$lang['e08']); } } /* Check the message with JunkMark(tm)? */ if ($settings['junkmark_use']) { $junk_mark=JunkMark($name,$from,$email,$url,$comments); if ($settings['junkmark_ban100'] && $junk_mark == 100) { gbook_banIP(gbook_IP(),1); } elseif ($junk_mark >= $settings['junkmark_limit']) { $_SESSION['block'] = 1; problem($lang['e01'],0); } } addEntry($name,$from,$email,$url,$comments,$isprivate); } elseif($a=='confirmdelete') { $pass=gbook_input($_REQUEST['pass'],$lang['e09']); $num=gbook_isNumber($_REQUEST['num'],$lang['e02']); doDelete($pass,$num); } elseif($a=='showprivate') { $pass=gbook_input($_REQUEST['pass'],$lang['e09']); $num=gbook_isNumber($_REQUEST['num'],$lang['e02']); showPrivate($pass,$num); } elseif($a=='reply') { $num=gbook_isNumber($_REQUEST['num'],$lang['e02']); writeReply($num); } elseif($a=='postreply') { $pass=gbook_input($_REQUEST['pass'],$lang['e09']); $comments=gbook_input($_REQUEST['comments'],$lang['e10']); $num=gbook_isNumber($_REQUEST['num'],$lang['e02']); postReply($pass,$num,$comments); } elseif($a=='viewIP') { $num=gbook_isNumber($_REQUEST['num'],$lang['e02']); confViewIP($num); } elseif($a=='seeIP') { $pass=gbook_input($_REQUEST['pass'],$lang['e09']); $num=gbook_isNumber($_REQUEST['num'],$lang['e02']); seeIP($pass,$num); } elseif($a=='viewEmail') { $num=gbook_isNumber($_GET['num'],$lang['e02']); confViewEmail($num); } elseif($a=='seeEmail') { $pass=gbook_input($_REQUEST['pass'],$lang['e09']); $num=gbook_isNumber($_REQUEST['num'],$lang['e02']); seeEmail($pass,$num); } else { problem($lang['e11']); } } $page=gbook_isNumber($_REQUEST['page']); if ($page>0) { $start=($page*10)-9;$end=$start+9; } else { $page=1;$start=1;$end=10; } $lines=file($settings['logfile']); $total = count($lines); if ($total > 0) { if ($end > $total) {$end=$total;} $pages = ceil($total/10); echo '

'.sprintf($lang['t01'],$total,$pages).'
'; $gbook_nav = ''; if ($pages > 1) { $prev_page = ($page-1 <= 0) ? 0 : $page-1; $next_page = ($page+1 > $pages) ? 0 : $page+1; if ($prev_page) { $gbook_nav .= ' << '.$lang['t02'].'  |  < '.$lang['t03'].'  |  '; } for ($i=1; $i<=$pages; $i++) { if ($i <= ($page+5) && $i >= ($page-5)) { if($i == $page) {$gbook_nav .= ' '.$i.' ';} else {$gbook_nav .= ' '.$i.' ';} } } if ($next_page) { $gbook_nav .= '  |  '.$lang['t04'].' >  |  '.$lang['t05'].' >> '; } } echo $gbook_nav; echo '

'; } if ($total == 0) { echo '

'.$lang['t06'].'
 
'; } else {printEntries($lines,$start,$end);} if ($total > 0) { echo '

'.$gbook_nav.'

'; } printDownHTML(); exit(); // >>> START FUNCTIONS <<< // function seeEmail($pass,$num) { global $settings, $lang; if ($pass != $settings[apass]) {problem($lang['e12']);} $lines=file($settings['logfile']); $myline=explode("\t",$lines[$num]); ?>

 

 

 

 

 

 

 

 

|

 

 

 

 

'.$ip; ?>

 

 

 

 

 

 

|

 

 

',$comments); $comments = preg_replace('/(\s*){2,}/','

',$comments); if ($settings['smileys'] == 1 && $_REQUEST['nosmileys'] != 'Y') {$comments = processsmileys($comments);} if ($settings['filter']) {$comments = filter_bad_words($comments);} $myline=array(0=>'',1=>'',2=>'',3=>'',4=>'',5=>'',6=>'',7=>'',8=>''); $lines=file($settings['logfile']); $myline=explode("\t",$lines[$num]); foreach ($myline as $k=>$v) { $myline[$k]=rtrim($v); } $myline[7]=$comments; $lines[$num]=implode("\t",$myline)."\n"; $lines=implode('',$lines); $fp = fopen($settings['logfile'],'wb') or problem($lang['e13']); fputs($fp,$lines); fclose($fp); ?>

 

 

 

 

 

 

 



                       

|

 

 

$v) { $text = preg_replace("/\b$k\b/i",$v,$text); } return $text; } // END filter_bad_words function showPrivate($pass,$num) { global $settings, $lang; if ($pass != $settings[apass]) {problem($lang['e15']);} $delimiter="\t"; $lines=file($settings['logfile']); list($name,$from,$email,$url,$comment,$added,$isprivate,$reply)=explode($delimiter,$lines[$num]); echo '
'.$lang['t15'].' '.$lang['t16'].'
'.$lang['t17'].' '.$name.'
'; if ($from) { echo $lang['t18'].' '.$from.'
'; } if ($settings['use_url'] && $url) { echo $lang['t19'].' '.$url.'
'; } if ($email) { echo $lang['t20'].' '.$email.''; } echo '
'.$comment; if (!empty($reply)) { echo '

'.$lang['t30'].' '.$reply.''; } echo '
 
'.$lang['t31'].' '.$added.' '.$lang['t32'].'  '.$lang['t33'].'  '.$lang['t09'].'  

'.$lang['t34'].'

'; printDownHTML(); exit(); } // END showPrivate function confirmViewPrivate($num) { global $lang; ?>

 

 

|

 

 

',$text); $text = str_replace(':(','',$text); $text = str_replace(':D','',$text); $text = str_replace(';)','',$text); $text = preg_replace("/\:o/i",'',$text); $text = preg_replace("/\:p/i",'',$text); $text = str_replace(':cool:','',$text); $text = str_replace(':rolleyes:','',$text); $text = str_replace(':mad:','',$text); $text = str_replace(':eek:','',$text); $text = str_replace(':clap:','',$text); $text = str_replace(':bonk:','',$text); $text = str_replace(':chased:','',$text); $text = str_replace(':crazy:','',$text); $text = str_replace(':cry:','',$text); $text = str_replace(':curse:','',$text); $text = str_replace(':err:','',$text); $text = str_replace(':livid:','',$text); $text = str_replace(':rotflol:','',$text); $text = str_replace(':love:','',$text); $text = str_replace(':nerd:','',$text); $text = str_replace(':nono:','',$text); $text = str_replace(':smash:','',$text); $text = str_replace(':thumbsup:','',$text); $text = str_replace(':toast:','',$text); $text = str_replace(':welcome:','',$text); $text = str_replace(':ylsuper:','',$text); return $text; } // END processsmileys function doDelete($pass,$num) { global $settings, $lang; if ($pass != $settings[apass]) {problem($lang['e16']);} $lines=file($settings['logfile']); if (isset($_POST['addban']) && $_POST['addban']=='YES') { gbook_banIP(trim(array_pop(explode("\t",$lines[$num])))); } unset($lines[$num]); $lines=implode('',$lines); $fp = fopen($settings['logfile'],'wb') or problem($lang['e13']); fputs($fp,$lines); fclose($fp); ?>

 

 

 

 

 

 

 

 

|

 

 

'','url' => ''); $char = array('.','@'); $repl = array('.','@'); $v['email']=htmlspecialchars($_POST['email']); if (strlen($v['email']) > 0 && !(preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$v['email']))) {$v['email']='INVALID';} $v['email']=str_replace($char,$repl,$v['email']); if ($settings['use_url']) { $v['url']=htmlspecialchars($_POST['url']); if ($v['url'] == 'http://' || $v['url'] == 'https://') {$v['url'] = '';} elseif (strlen($v['url']) > 0 && !(preg_match("/(http(s)?:\/\/+[\w\-]+\.[\w\-]+)/i",$v['url']))) {$v['url'] = 'INVALID';} } elseif (!empty($_POST['url'])) { $_SESSION['block'] = 1; problem($lang['e01'],0); } else { $v['url'] = ''; } return $v; } // END check_mail_url function addEntry($name,$from,$email,$url,$comments,$isprivate="0") { global $settings, $lang; /* This part will help prevent multiple submissions */ if ($settings['one_per_session'] && $_SESSION['add']) { problem($lang['e17'],0); } $delimiter="\t"; $added=date ("F j, Y"); $comments_nosmileys=$comments; $comments = wordwrap($comments,$settings['max_word'],' ',1); $comments = preg_replace('/\&([#0-9a-zA-Z]*)(\s)+([#0-9a-zA-Z]*);/Us',"&$1$3; ",$comments); $comments = preg_replace('/(\r\n|\n|\r)/','
',$comments); $comments = preg_replace('/(\s*){2,}/','

',$comments); if ($settings['smileys'] == 1 && $_REQUEST['nosmileys'] != "Y") {$comments = processsmileys($comments);} if ($settings['filter']) { $comments = filter_bad_words($comments); $name = filter_bad_words($name); $from = filter_bad_words($from); } $addline = $name.$delimiter.$from.$delimiter.$email.$delimiter.$url.$delimiter.$comments.$delimiter.$added.$delimiter.$isprivate.$delimiter.'0'.$delimiter.$_SERVER['REMOTE_ADDR']."\n"; $fp = @fopen($settings['logfile'],'rb') or problem($lang['e18']); $links = @fread($fp,filesize($settings['logfile'])); fclose($fp); $addline .= $links; $fp = fopen($settings['logfile'],'wb') or problem($lang['e13']); fputs($fp,$addline); fclose($fp); if ($settings['notify'] == 1) { $char = array('.','@'); $repl = array('.','@'); $email=str_replace($repl,$char,$email); $message = "$lang[t42] $lang[t43] $lang[t17] $name $lang[t18] $from $lang[t20] $email $lang[t19] $url $lang[t44] $comments_nosmileys $lang[t45] $settings[gbook_url] $lang[t46] "; mail("$settings[admin_email]",$lang['t41'],$message); } /* Register this session variable */ $_SESSION['add']=1; ?>

 

 

 

 

 

 

'.$error.'

'; } ?> '; } ?>
'.$lang['t53'].'


   

                       

'; } if ($settings['autosubmit']==1) { echo '

'.$lang['t62'].'
'.$lang['t56'].'

'; } elseif ($settings['autosubmit']==2) { echo '

'.$_SESSION['secnum'].'
'.$lang['t56'].'

'; } ?>


 

'.$lang['t15'].' '.$lang['t16'].' '.$lang['t17'].' '.$name.'
'; if ($from) { echo $lang['t18'].' '.$from.'
'; } if ($settings['use_url'] && $url) { $target = $settings['url_blank'] ? 'target="_blank"' : ''; echo $lang['t19'].' '.$url.'
'; } if ($email) { if ($settings['hide_emails']) { echo $lang['t20'].' '.$lang['t27'].''; } else { echo $lang['t20'].' '.$email.''; } } echo ' '; if (empty($isprivate) || empty($settings['use_private'])) { echo $comment; } else { echo '

'.$lang['t58'].'
'; } if (!empty($reply)) { echo '

'.$lang['t30'].' '.$reply.''; } echo '
 
'.$lang['t31'].' '.$added.' '.$lang['t32'].'  '.$lang['t33'].'  '.$lang['t09'].'  
'; } } // END printEntries function problem($myproblem,$backlink=1) { $html = '

 

 

'.$lang['e19'].'

'.$myproblem.'

 

'; if ($backlink) { $html .= '

'.$lang['t59'].'

'; } $html .= '

 

 

'; echo $html; printDownHTML(); exit(); } // END problem function printNoCache() { header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); } // END printNoCache function printTopHTML() { global $settings, $lang; echo ' '.$settings['gbook_title'].' '; include_once 'header.txt'; echo '

'.$settings['gbook_title'].'

'.$lang['t61'].' '.$settings['website_title'].' | '.$lang['t60'].' | '.$lang['t48'].'

'; } // END printTopHTML function printDownHTML() { global $settings, $lang; eval(gzinflate(base64_decode('DclHkqNIAADA50xPcAAKJ2JPGGEEogHhLxuYwnuEKV6/m9eER9 r/VHczln36hT9ZukGW/reA+VTAnz9yzmvdYumCIAsMcVH5WzCe1CFJ0uMhmfVb0MOxlsuG9w6mQsjO7G bm8MSTiz7Edy8Jv6YfkUKooxrHu1roj2POxx7mzSjVgHe/0slbW6IEHld3t2xMzzdQIv1AL0TOrl6alU HhKYfCoMEUTJSfrSJrs2KmbgedTdiB324skM2zdNizG0pb5Q7WDWOGp7RoJW2muvwZJG50bSqeG9gNzq 7Bw4ykY3zHjKT8qOSyl7936tTe4k6jbHcp7qkKem0GRoM6kdqwp4fxsbQUOtnX4A6QrVSYeFFfXdS1wC BNQs8C/8fWyC1OmGoZmWkGETDBWcb7zaDdXzfgLc2Vf1piWUm/wZBHeNQ76ZhLz2LDzkNv10mXAvXTKr 5TgbNCH9TE163MCVJxrKraXPnLtcgLQd/l9ZGTFwY/WVnOevbGkcb3F6u82yKlxcwymEZvlHONvSeIVb dgtdwd9OvQ+VLPp/YyupuTJwgOZOooo3U2bd3q2AIBMEMkGvR8V9eiJUJnA44Uxa9acYlbPPuGNH3Gl5 1yeskkh9jDstj7YMEdKkNw1/RNR0P5qB01WahbsI1dDXveIkYLVdzIEPsq+kfk3GK1vl8CsSNGIFIMTq 3/0KF918FVt0610xSBDVSD//Lngappdczg8KXoUAH99qRF4oheJvIV+rQP3ZOzVyGejTlf12DeCrNvEe c/Pxf9meKz9YL3JNvqq/6KfZ05qz6ZwSAto2v9Ft2l6tHjUH7lx824xR0VLyVLqR7tSXPW2hzkos8lgM 5pkSPYtsxa+Yk5gIA6VBZzGZ2b+tKzyjMhoKHqAA2zMwtF0BhaRU9XX9fMiJqLby1S2zgOXWSJMXHZhy j7Amqe+VI4cthjZvTaf7EsxqBGrQWW8xIFKBXu5p0ks4t+XdbfWb7dQSAUDWmdxk6XfLhz3Bn4XU3GGq pmvBx5HMe38s/fv3//+Q8='))); } // END printDownHTML function gbook_input($in,$error=0) { $in = trim($in); if (strlen($in)) { $in = htmlspecialchars($in); $in = preg_replace('/&(\#[0-9]+;)/','&$1',$in); } elseif ($error) { problem($error); } return stripslashes($in); } // END gbook_input() function gbook_isNumber($in,$error=0) { $in = trim($in); if (preg_match("/\D/",$in) || $in=="") { if ($error) { problem($error); } else { return '0'; } } return $in; } // END gbook_isNumber() function JunkMark($name,$from,$email,$url,$comments) { /* JunkMark(TM) SPAM filter v1.3 from 12th Feb 2008 (c) Copyright 2006-2008 Klemen Stirn. All rights reserved. The function returns a number between 0 and 100. Larger numbers mean more probability that the message is SPAM. Recommended limit is 60 (block message if score is 60 or more) THIS CODE MAY ONLY BE USED IN THE "GBOOK" SCRIPT FROM PHPJUNKYARD.COM AND DERIVATIVE WORKS OF THE GBOOK SCRIPT. THIS CODE MUSTN'T BE USED IN ANY OTHER SCRIPT AND/OR REDISTRIBUTED IN ANY MEDIUM WITHOUT THE EXPRESS WRITTEN PERMISSION FROM KLEMEN STIRN! */ global $settings; eval(gzinflate(base64_decode('DZNFsoRaokWHU+9FNnDJ+FENSOyQkLh2KnB3OMjo/53BlrUKmP T/VE8zln2yF/+kyVbQ5P/yIpvy4p//CLGFiYcFRM4pM2arLfS6sKmK7eYZre3RC4j/CDTGfCkK4reGLD k1aObeaQjd3X5k4cqb6jyMYous1NbUTstZHtnl2ve8Y0QHkl5ni7QrB4LSYq2VJQaMliBedya/TrvP0O aiQoHfr7344f4kWFcLTbXpFnX7DGLEy0GsOmf+HVs0P7kHznAju1BD2Cmyf4KaBZVfUz1AnLulrEYL3R 8TiliGJYm5oSj6AEkJ1ChTLG1nmOYozxq4O6s5NuMhHXcRAha/qsBk9XoqemoOhvayvAUOBB5xkr8OdT DZH4GR00yyn6Ou5A3nhRpQDXXbguE49erWTF7yTklY/bvK9gZ/mo4Eoaju+uur2pXTu/HR7/coMayqO6 0Dk1s9LumJmxc5QE79dYOjtZbvgXfjj4EFx8NUMnt1Y1DTedqucOz4i/SFslEXotW19EHSCr+iB0Won/ lzpzhbfdZC0YD6W+jH2scPGwpXsznBUDnRiOJbKURmtsRid0mp49X+R5jjyjjFcw/FR7wDxY098wYvOz H6AJEZhj+RsyyLF6anqeDX/ZWC6m0EKvbNjxhQzwjuTFxF/GTGfi94C32509hJVSGokSnp2LricorY14 eBFb1xNfp4OVJAWgk9/0lM49g9CmmH6cJsR6Kn2ZIkkarSr7sqFxNe/rCsmtlXF1N1QBHwCMjEcv98by aSu83u18/yGdTtV9kZ2a+2WcaSRhhuOi91FNphyMth+LKGQ3o6+Rni6cqNSymDGGYRkdocPbCiLk18fS TKAKkh+2g19gY+dJ9R5XQGm/NeCI4a7PYCTiFZg0b87qJ0x3yI137kd2o39r8Uc0tetKuuTNIeI2eRZm Y3gbHfer4YVeRpxEkV3fsjaLcCGZrDvKTpv27ovk+NKAeAeB4kYIlENFff8341GnlGrUxUfkyL2KFznz SMT5RUe33WyqGbJiVOjBuvqKJZNGzFe2MZjjGD0njlIS22Mlwi4iGs10myE0DmfSp8cbyCB426gJRT6U pe9qpHWFAotySoq7SGmCnnHWkcK5/fSeOMSYHFz2+Jzw+FUAb+kOLG6roRgf0mp+yj0MXGU/GCWEaNzn FGKzlrY3tHln/GZnTS82U7gLaMNbAGA+pA7CqX/uZYl4zsZuS3XBpNjcoW65FCxE4ZLxPvFcjLUaziVO dNGzKk3b2Z/LjWwbfsx/sJvsTwiuRFu2FnhPsDm03F50iYp42pMBlTyGWXxisqrtp50uEXEnsjK2Gq/0 TyvqPV6pDsCgkkCMPkdapkKL/5BYb2KDCzPJyxrj/R5A3vW3zfaryhYk7GpuK8BRGgrrpriPJxqC+znG RrPpPIKYAqIoRLZ/Ux963hQVyLs1fXORfw5DcYos8m1m36aWqA7WVOSLyIu7XeXTPfNs6eIKqvpjP5Cn NAo79EcFe2r02via54WsB3sl43lA4tDtJGWhvpq8zqd8i2qXdA1RfzmJUrjwNHjDfSnjT7YfKPxapjeb 9qVJuzdkjjtogIEenrBkj+eNaySRmXsOhGJb//4j+jn6DIHogYwXsmWIep9M9EHoK/7qGQcN9pi2V/UF lagkTnEXnO6e0VDkzE/ybraxnUiVNE9VDVGSayQNW/uxvleQrf/F71DRZ9TxoWltdl83cq/iDnH/n8/S xlCuC06CApVfePPnhVWLUMJweokvr2IZO2YfjGK2eaVSvQ35d7ljQ2wzrq1g2JivCdoDSjEHecHBtBPB rkmJXYpYXQmNpihJTzMc4/fN+cEpO2U5ooRcJQU7RGs1lWthcOWJsUY68b0b/fQuWD31Y9RAYENUltcJ ybhAAEkvK3CdvsO/m4EouzpAoN4gUkPuJtnkOuLV+QjxPY3pnB/znMaSPKDNYu/SatasetB8FaKywXbZ Of1r88HfQc/Vr5fMI36d/cDQLjoNBGrsOOHNosF2sd5AjtyJqB3NHiVgQP1+tgEyWBO+5+wQf4uZtun5 L13oTKBez+QtMlMNsoyYZ6K0uVMx9O4cr8jhmoUZomzNHjdEU3RbfaouNtEkI4N361qJVgVvyosKy2P0 dHz6dhGQ+FRjfANLy5GYcv4lQ7zrfe3D5Kx8vBO8x69VU+POpGcSLrkUmErZ7U/cqa/jhON4fsbDQltK 1R5vwz0/Oefgq/FrRJZeT4ZJfpfYSuXbK3IDM9ITDYtuGB2A68Bsj062FcwcGR85t7hDXFERwmM+ML8d 833tLUSzvYxuQqtQ8iULkR8FgWKf98RhCb/e9//v333//7fw=='))); return $myscore; } // END JunkMark() function gbook_IP() { $ip = $_SERVER['REMOTE_ADDR']; if (!preg_match('/^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$/',$ip)) { if ($settings['allow_IPv6'] && preg_match('/^[0-9A-Fa-f\:]+$/',$ip)) { return $ip; } die($lang['e20']); } return $ip; } // END gbook_IP() function gbook_CheckIP() { $ip = gbook_IP(); $myBanned = file_get_contents('banned_ip.txt'); if (strpos($myBanned,$ip) !== false) { die($lang['e21']); } return true; } // END gbook_CheckIP() function gbook_banIP($ip,$doDie=0) { $fp=fopen('banned_ip.txt','a'); fputs($fp,$ip.'%'); fclose($fp); if ($doDie) { die($lang['e21']); } return true; } // END gbook_banIP() function gbook_session_regenerate_id() { if (version_compare(phpversion(),'4.3.3','>=')) { session_regenerate_id(); } else { $randlen = 32; $randval = '0123456789abcdefghijklmnopqrstuvwxyz'; $random = ''; $randval_len = 35; for ($i = 1; $i <= $randlen; $i++) { $random .= substr($randval, rand(0,$randval_len), 1); } if (session_id($random)) { setcookie( session_name('GBOOK'), $random, ini_get('session.cookie_lifetime'), '/' ); return true; } else { return false; } } } // END gbook_session_regenerate_id() ?>