function comment($freeze_status) { echo '<h3>Comments</h3>'; global $categorySEF, $subcatSEF, $articleSEF, $_ID, $commentsPage; if (isset($commentsPage)) { $commentsPage = str_replace(l('comment_pages'), '', $commentsPage); } if (strpos($articleSEF, l('paginator')) === 0) { $articleSEF = str_replace(l('paginator'), '', $articleSEF); } if (!isset($commentsPage) || !is_numeric($commentsPage) || $commentsPage < 1) { $commentsPage = 1; } $comments_order = s('comments_order'); if (isset($_POST['comment'])) { $comment = cleanWords(trim($_POST['text'])); $comment = strlen($comment) > 4 ? clean(cleanXSS($comment)) : null; $name = trim($_POST['name']); $name = strlen($name) > 1 ? clean(cleanXSS($name)) : null; $url = trim($_POST['url']); $url = strlen($url) > 8 && strpos($url, '?') === false ? clean(cleanXSS($url)) : null; $post_article_id = is_numeric($_POST['id']) && $_POST['id'] > 0 ? $_POST['id'] : null; $ip = strlen($_POST['ip']) < 16 ? clean(cleanXSS($_POST['ip'])) : null; if (_ADMIN) { $doublecheck = 1; $ident = 1; } else { $contentCheck = retrieve('id', 'comments', 'comment', $comment); $ident = !$contentCheck || time() - $_SESSION[_SITE . 'poster']['time'] > s('comment_repost_timer') || $_SESSION[_SITE . 'poster']['ip'] !== $ip ? 1 : 0; $doublecheck = $_SESSION[_SITE . 'poster']['article'] === "{$comment}:|:{$post_article_id}" && time() - $_SESSION[_SITE . 'poster']['time'] < s('comment_repost_timer') ? 0 : 1; } if ($ip == $_SERVER['REMOTE_ADDR'] && $comment && $name && $post_article_id && checkMathCaptcha() && $doublecheck == 1 && $ident == 1) { $url = preg_match('/((http)+(s)?:(\\/\\/)|(www\\.))([a-z0-9_\\-]+)/', $url) ? $url : ''; $url = substr($url, 0, 3) == 'www' ? 'http://' . $url : $url; $time = date('Y-m-d H:i:s'); unset($_SESSION[_SITE . 'poster']); $approved = s('approve_comments') != 'on' || _ADMIN ? 'True' : ''; $query = 'INSERT INTO ' . _PRE . 'comments' . '(articleid, name, url, comment, time, approved) VALUES' . "('{$post_article_id}', '{$name}', '{$url}', '{$comment}', '{$time}', '{$approved}')"; mysql_query($query); $_SESSION[_SITE . 'poster']['article'] = "{$comment}:|:{$post_article_id}"; $_SESSION[_SITE . 'poster']['time'] = time(); // this is to set session for checking multiple postings. $_SESSION[_SITE . 'poster']['ip'] = $ip; $commentStatus = s('approve_comments') == 'on' && !_ADMIN ? l('comment_sent_approve') : l('comment_sent'); // eMAIL COMMENTS if (s('mail_on_comments') == 'on' && !_ADMIN) { if (s('approve_comments') == 'on') { $status = l('approved_text'); $subject = l('subject_a'); } else { $status = l('not_waiting_approved'); $subject = l('subject_b'); } $to = s('website_email'); $send_array = array('to' => $to, 'name' => $name, 'comment' => $comment, 'ip' => $ip, 'url' => $url, 'subject' => $subject, 'status' => $status); send_email($send_array); } // End of Mail } else { $commentStatus = l('comment_error'); $commentReason = l('ce_reasons'); $fail = true; $_SESSION[_SITE . 'comment']['name'] = $name; $_SESSION[_SITE . 'comment']['comment'] = br2nl($comment); $_SESSION[_SITE . 'comment']['url'] = $url; $_SESSION[_SITE . 'comment']['fail'] = $fail; } echo '<h2>' . $commentStatus . '</h2>'; if (!empty($commentReason)) { echo '<p>' . $commentReason . '</p>'; } $postArt = clean(cleanXSS($_POST['article'])); $postArtID = retrieve('category', 'articles', 'id', $post_article_id); if ($postArtID == 0) { $postCat = ''; } else { $postCat = cat_rel($postArtID, 'seftitle') . '/'; } if ($fail) { $back_link = _SITE . $postCat . $postArt; echo '<a href="' . $back_link . '/">' . l('back') . '</a>'; } else { echo '<meta http-equiv="refresh" content="1; url=' . _SITE . $postCat . $postArt . '/">'; } } else { $commentCount = s('comment_limit'); $comment_limit = empty($commentCount) || $commentCount < 1 ? 100 : $commentCount; if (isset($commentsPage)) { $pageNum = $commentsPage; } $offset = ($pageNum - 1) * $comment_limit; $totalrows = 'SELECT count(id) AS num FROM ' . _PRE . 'comments' . ' WHERE articleid = ' . $_ID . ' AND approved = \'True\';'; $rowsresult = mysql_query($totalrows); $numrows = mysql_fetch_array($rowsresult); $numrows = $numrows['num']; /**** redundant/excessive /* if ($numrows == 0) { if ($freeze_status != 'freezed' && s('freeze_comments') != 'YES') { echo '<p>'.l('no_comment').'</p>'; } else { echo '<p>'.l('frozen_comments').'</p>'; } } else { /**** end redundant/excessive*****/ if ($numrows > 0) { $query = 'SELECT id,articleid,name,url,comment,time,approved FROM ' . _PRE . 'comments' . ' WHERE articleid = ' . $_ID . ' AND approved = \'True\' ORDER BY id ' . $comments_order . ' LIMIT ' . "{$offset}, {$comment_limit}"; $result = mysql_query($query) or die(l('dberror')); $ordinal = 1; $date_format = s('date_format'); $edit_link = ' <a href="' . _SITE . '?action='; while ($r = mysql_fetch_array($result)) { $date = date($date_format, strtotime($r['time'])); $commentNum = $offset + $ordinal; $tag = explode(',', tags('comments')); foreach ($tag as $tag) { switch (true) { case $tag == 'date': echo '<a id="' . l('comment') . $commentNum . '" name="' . l('comment') . $commentNum . '"></a>' . $date; break; case $tag == 'name': $name = $r['name']; echo !empty($r['url']) ? '<a href="' . $r['url'] . '" title="' . $r['url'] . '" rel="nofollow"> ' . $name . '</a> ' : $name; break; case $tag == 'comment': echo $r['comment']; break; case $tag == 'edit' && _ADMIN: echo $edit_link . 'editcomment&commentid=' . $r['id'] . '" title="' . l('edit') . ' ' . l('comment') . '">' . l('edit') . '</a> '; echo $edit_link . 'process&task=deletecomment&commentid=' . $r['id'] . '" title="' . l('delete') . ' ' . l('comment') . '" onclick="return pop()">' . l('delete') . '</a>'; break; case $tag == 'edit': break; default: echo $tag; } } $ordinal++; } $maxPage = ceil($numrows / $comment_limit); $back_to_page = ceil(($numrows + 1) / $comment_limit); if ($maxPage > 1) { paginator($pageNum, $maxPage, l('comment_pages')); } } if ($freeze_status != 'freezed' && s('freeze_comments') != 'YES') { /*added 24 jan 2009*/ if ($numrows == 0) { echo '<p>' . l('no_comment') . '</p>'; } // recall and set vars for reuse when botched post if ($_SESSION[_SITE . 'comment']['fail'] == true) { $name = $_SESSION[_SITE . 'comment']['name']; $comment = $_SESSION[_SITE . 'comment']['comment']; $url = $_SESSION[_SITE . 'comment']['url']; unset($_SESSION[_SITE . 'comment']); } else { $url = $name = $comment = ''; } // end var retrieval $art_value = empty($articleSEF) ? $subcatSEF : $articleSEF; echo '<div class="commentsbox"><h2>' . l('addcomment') . '</h2>' . "\r\n"; echo '<p>' . l('required') . '</p>' . "\r\n"; echo html_input('form', '', 'post', '', '', '', '', '', '', '', '', '', 'post', _SITE, '') . "\r\n"; echo html_input('text', 'name', 'name', $name, '* ' . l('name'), 'text', '', '', '', '', '', '', '', '', '') . "\r\n"; echo html_input('text', 'url', 'url', $url, l('url'), 'text', '', '', '', '', '', '', '', '', '') . "\r\n"; echo html_input('textarea', 'text', 'text', $comment, '* ' . l('comment'), '', '', '', '', '', '5', '5', '', '', '') . "\r\n"; echo mathCaptcha() . "\r\n"; echo '<p>'; echo html_input('hidden', 'category', 'category', $categorySEF, '', '', '', '', '', '', '', '', '', '', '') . "\r\n"; echo html_input('hidden', 'id', 'id', $_ID, '', '', '', '', '', '', '', '', '', '', '') . "\r\n"; echo html_input('hidden', 'article', 'article', $art_value, '', '', '', '', '', '', '', '', '', '', '') . "\r\n"; echo html_input('hidden', 'commentspage', 'commentspage', $back_to_page, '', '', '', '', '', '', '', '', '', '', '') . "\r\n"; echo html_input('hidden', 'ip', 'ip', $_SERVER['REMOTE_ADDR'], '', '', '', '', '', '', '', '', '', '', '') . "\r\n"; echo html_input('hidden', 'time', 'time', time(), '', '', '', '', '', '', '', '', '', '', ''); echo html_input('submit', 'comment', 'comment', l('submit'), '', 'button', '', '', '', '', '', '', '', '', '') . "\r\n"; echo '</p></form></div>'; } else { echo '<p>' . l('frozen_comments') . '</p>'; } } }
function contact() { if (!isset($_POST['contactform'])) { $_SESSION[_SITE . 'time'] = $time = time(); echo '<div class="commentsbox"><h2>' . l('contact') . '</h2> <p>' . l('required') . '</p> <form method="post" action="' . _SITE . '" id="post" accept-charset="UTF-8"> <p><label for="name">* ', l('name'), '</label>:<br /> <input type="text" name="name" id="name" maxlength="100" class="text" value="" /></p> <p><label for="email">* ', l('email'), '</label>:<br /> <input type="text" name="email" id="email" maxlength="320" class="text" value="" /></p> <p><label for="weblink">', l('url'), '</label>:<br /> <input type="text" name="weblink" id="weblink" maxlength="160" class="text" value="" /></p> <p><label for="message">* ', l('message'), '</label>:<br /> <textarea name="message" rows="5" cols="5" id="message"></textarea></p> ', mathCaptcha(), ' <p><input type="hidden" name="ip" id="ip" value="', $_SERVER['REMOTE_ADDR'], '" /> <input type="hidden" name="time" id="time" value="', time(), '" /> <input type="submit" name="contactform" id="contactform" class="button" value="', l('submit'), '" /></p> </form> </div>'; } elseif (isset($_SESSION[_SITE . 'time'])) { $count = $magic = 0; if (get_magic_quotes_gpc()) { $magic = 1; } foreach ($_POST as $k => $v) { if ($count === 8) { die; } if ($magic) { ${$k} = stripslashes($v); } else { ${$k} = $v; } ++$count; } $to = s('website_email'); $subject = s('contact_subject'); $name = isset($name[0]) && !isset($name[300]) ? trim($name) : null; $name = !preg_match('/[\\n\\r]/', $name) ? $name : die; $mail = isset($email[6]) && !isset($email[320]) ? trim($email) : null; $mail = !preg_match('/[\\n\\r]/', $mail) ? $mail : die; $url = isset($weblink[4]) && !isset($weblink[160]) ? trim($weblink) : null; $url = strpos($url, '?') === false && !preg_match('/[\\n\\r]/', $url) ? $url : null; $message = isset($message[10]) && !isset($message[6000]) ? strip_tags($message) : null; $time = isset($_SESSION[_SITE . 'time']) && $_SESSION[_SITE . 'time'] === (int) $time && time() - $time > 10 ? $time : null; if (isset($ip) && $ip === $_SERVER['REMOTE_ADDR'] && $time && $name && $mail && $message && checkMathCaptcha()) { unset($_SESSION[_SITE . 'time']); echo notification(0, l('contact_sent'), 'home'); $send_array = array('to' => $to, 'name' => $name, 'email' => $mail, 'message' => $message, 'ip' => $ip, 'url' => $url, 'subject' => $subject); send_email($send_array); } else { echo notification(1, l('contact_not_sent'), 'contact'); } } }