XoopsModules25x /
xfguestbook
These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more
| 1 | <?php |
||
| 2 | // $Id: xfcreate.php, v 0.1 2007/12/04 C. Asswipe php team |
||
| 3 | // ------------------------------------------------------------------------ // |
||
| 4 | // XF Guestbook // |
||
| 5 | // ------------------------------------------------------------------------- // |
||
| 6 | // This program is free software; you can redistribute it and/or modify // |
||
| 7 | // it under the terms of the GNU General Public License as published by // |
||
| 8 | // the Free Software Foundation; either version 2 of the License, or // |
||
| 9 | // (at your option) any later version. // |
||
| 10 | // // |
||
| 11 | // You may not change or alter any portion of this comment or credits // |
||
| 12 | // of supporting developers from this source code or any supporting // |
||
| 13 | // source code which is considered copyrighted (c) material of the // |
||
| 14 | // original comment or credit authors. // |
||
| 15 | // // |
||
| 16 | // This program is distributed in the hope that it will be useful, // |
||
| 17 | // but WITHOUT ANY WARRANTY; without even the implied warranty of // |
||
| 18 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // |
||
| 19 | // GNU General Public License for more details. // |
||
| 20 | // // |
||
| 21 | // You should have received a copy of the GNU General Public License // |
||
| 22 | // along with this program; if not, write to the Free Software // |
||
| 23 | // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // |
||
| 24 | // ------------------------------------------------------------------------ // |
||
| 25 | |||
| 26 | include dirname(dirname(__DIR__)) . '/mainfile.php'; |
||
| 27 | if (!is_object($xoopsUser) && 1 != $xoopsModuleConfig['anonsign']) { |
||
| 28 | redirect_header(XOOPS_URL . '/user.php', 2, _MD_XFGB_MUSTREGFIRST); |
||
| 29 | } |
||
| 30 | |||
| 31 | //include_once(XOOPS_ROOT_PATH."/modules/".$xoopsModule->dirname()."/class/msg.php"); |
||
| 32 | include_once(XOOPS_ROOT_PATH . '/modules/' . $xoopsModule->dirname() . '/include/functions.php'); |
||
| 33 | include_once('include/config.inc.php'); |
||
| 34 | |||
| 35 | $option = getOptions(); |
||
| 36 | $msg_handler = xoops_getModuleHandler('msg'); |
||
| 37 | |||
| 38 | $confirm_code = isset($_POST['confirm_code']) ? $_POST['confirm_code'] : ''; |
||
| 39 | $confirm_str = isset($_POST['confirm_str']) ? $_POST['confirm_str'] : ''; |
||
| 40 | $user_id = isset($_POST['user_id']) ? (int)$_POST['user_id'] : 0; |
||
| 41 | $title = (isset($_POST['title']) ? $_POST['title'] : ''); |
||
| 42 | $message = (isset($_POST['message']) ? $_POST['message'] : ''); |
||
| 43 | $gender = (isset($_POST['gender']) ? $_POST['gender'] : ''); |
||
| 44 | $preview_name = (isset($_POST['preview_name']) ? $_POST['preview_name'] : ''); |
||
| 45 | $email = (isset($_POST['email']) ? $_POST['email'] : ''); |
||
| 46 | $name = (isset($_POST['name']) ? $_POST['name'] : ''); |
||
| 47 | $url = (isset($_POST['url']) ? $_POST['url'] : ''); |
||
| 48 | $country = (isset($_POST['country']) ? $_POST['country'] : ''); |
||
| 49 | |||
| 50 | View Code Duplication | if (isset($_POST['preview'])) { |
|
| 51 | $op = 'preview'; |
||
| 52 | } elseif (isset($_POST['post'])) { |
||
| 53 | $op = 'post'; |
||
| 54 | } else { |
||
| 55 | $op = 'form'; |
||
| 56 | } |
||
| 57 | |||
| 58 | $badip = in_array($_SERVER['REMOTE_ADDR'], xfgb_get_badips()) ? true : false; |
||
| 59 | |||
| 60 | switch ($op) { |
||
| 61 | View Code Duplication | case 'cancel': |
|
| 62 | $photos_dir = XOOPS_UPLOAD_PATH . '/' . $xoopsModule->getVar('dirname'); |
||
| 63 | $nb_removed_tmp = xfgb_clear_tmp_files($photos_dir); |
||
| 64 | redirect_header('index.php', 0); |
||
| 65 | break; |
||
| 66 | |||
| 67 | case 'preview': |
||
| 68 | $ts = MyTextSanitizer::getInstance(); |
||
| 69 | include XOOPS_ROOT_PATH . '/header.php'; |
||
| 70 | $xoopsOption['template_main'] = 'xfguestbook_signform.tpl'; |
||
| 71 | $msgstop = ''; |
||
| 72 | |||
| 73 | /*if ($option['opt_code']==1) { |
||
| 74 | xoops_load('XoopsCaptcha'); |
||
| 75 | $xoopsCaptcha = XoopsCaptcha::getInstance(); |
||
| 76 | if (!$xoopsCaptcha->verify()) { |
||
| 77 | $msgstop .= $xoopsCaptcha->getMessage(); |
||
| 78 | } |
||
| 79 | }*/ |
||
| 80 | View Code Duplication | if (2 == $option['opt_url'] && preg_match('/(http)|(www)/i', $message)) { |
|
| 81 | $msgstop .= _MD_XFGB_URL_DISABLED . '<br>'; |
||
| 82 | } |
||
| 83 | |||
| 84 | if ('' !== $email && !checkEmail($email)) { |
||
| 85 | $msgstop .= _MD_XFGB_INVALIDMAIL . '<br>'; |
||
| 86 | } |
||
| 87 | if (!empty($_FILES['photo']['name'])) { |
||
| 88 | xfgb_upload(); |
||
| 89 | } |
||
| 90 | $title = $ts->htmlSpecialChars($ts->stripSlashesGPC($title)); |
||
| 91 | $message = $ts->htmlSpecialChars($ts->stripSlashesGPC($message)); |
||
| 92 | if (!empty($msgstop)) { |
||
| 93 | $xoopsTpl->assign('preview', true); |
||
| 94 | $xoopsTpl->assign('msgstop', $msgstop); |
||
| 95 | include_once __DIR__ . '/include/form_sign.inc.php'; |
||
| 96 | $signform->assign($xoopsTpl); |
||
| 97 | include XOOPS_ROOT_PATH . '/footer.php'; |
||
| 98 | exit(); |
||
| 99 | } |
||
| 100 | $msgpost['title'] = $ts->previewTarea($title); |
||
| 101 | $msgpost['message'] = $ts->previewTarea($message); |
||
| 102 | $msgpost['poster'] = $name; |
||
| 103 | $msgpost['user_id'] = $user_id; |
||
| 104 | $msgpost['date'] = formatTimestamp(time(), 's'); |
||
| 105 | $msgpost['photo'] = $preview_name; |
||
| 106 | if (1 == $option['opt_url']) { |
||
| 107 | $msgpost['message'] = str_replace('target="_blank"', 'target="_blank" rel="nofollow"', $msgpost['message']); |
||
| 108 | } |
||
| 109 | if ($gender) { |
||
| 110 | $msgpost['gender'] = '<img src="assets/images/' . $gender . '.gif"'; |
||
| 111 | } |
||
| 112 | if ($email) { |
||
| 113 | $msgpost['email'] = "<img src=\"" . XOOPS_URL . "/images/icons/email.gif\" alt=\"" . _SENDEMAILTO . "\" />"; |
||
| 114 | } |
||
| 115 | if ($url) { |
||
| 116 | $msgpost['url'] = '<img src="' . XOOPS_URL . '/images/icons/www.gif" alt="' . _VISITWEBSITE . '">'; |
||
| 117 | } |
||
| 118 | if ($country) { |
||
| 119 | $flag = XOOPS_ROOT_PATH . '/modules/' . $xoopsModule->dirname() . '/assets/images/flags/' . $xoopsModuleConfig['flagdir'] . '/' . $country . '.gif'; |
||
| 120 | $arr_country = xfgb_getCountry("country_code ='" . $country . "'"); |
||
| 121 | $country_name = (count($arr_country) > 0) ? $arr_country[0]['country_name'] : ''; |
||
| 122 | View Code Duplication | if (file_exists($flag)) { |
|
| 123 | $msgpost['country'] = |
||
| 124 | "<img src=\"" . XOOPS_URL . '/modules/xfguestbook/assets/images/flags/' . $xoopsModuleConfig['flagdir'] . '/' . $country . ".gif\" alt=\"" . $country_name . "\">"; |
||
| 125 | } else { |
||
| 126 | $msgpost['country'] = $country_name; |
||
| 127 | } |
||
| 128 | } |
||
| 129 | |||
| 130 | $xoopsTpl->assign('preview', true); |
||
| 131 | $xoopsTpl->assign('msgstop', $msgstop); |
||
| 132 | include __DIR__ . '/include/form_sign.inc.php'; |
||
| 133 | $xoopsTpl->assign('msg', $msgpost); |
||
| 134 | $signform->assign($xoopsTpl); |
||
| 135 | include XOOPS_ROOT_PATH . '/footer.php'; |
||
| 136 | break; |
||
| 137 | |||
| 138 | case 'post': |
||
| 139 | $msgstop = ''; |
||
| 140 | View Code Duplication | if (1 == $option['opt_code']) { |
|
| 141 | xoops_load('XoopsCaptcha'); |
||
| 142 | $xoopsCaptcha = XoopsCaptcha::getInstance(); |
||
| 143 | if (!$xoopsCaptcha->verify()) { |
||
| 144 | $msgstop .= $xoopsCaptcha->getMessage() . '<br><br>'; |
||
| 145 | } |
||
| 146 | include XOOPS_ROOT_PATH . '/header.php'; |
||
| 147 | } |
||
| 148 | if ('' !== $_POST['uman']) { |
||
| 149 | redirect_header('index.php', 2, ''); |
||
| 150 | } |
||
| 151 | View Code Duplication | if (2 == $option['opt_url'] && preg_match('/(http)|(www)/i', $message)) { |
|
| 152 | $msgstop .= _MD_XFGB_URL_DISABLED . '<br><br>'; |
||
| 153 | } |
||
| 154 | if (!email_exist($email)) { |
||
| 155 | $msgstop .= _MD_XFGB_INVALIDMAIL . '<br><br>'; |
||
| 156 | } |
||
| 157 | if ('' !== $email && !checkEmail($email)) { |
||
| 158 | $msgstop .= _MD_XFGB_INVALIDMAIL . '<br><br>'; |
||
| 159 | } |
||
| 160 | if (!empty($_FILES['photo']['name'])) { |
||
| 161 | xfgb_upload(); |
||
| 162 | } |
||
| 163 | if (!empty($msgstop)) { |
||
| 164 | include XOOPS_ROOT_PATH . '/header.php'; |
||
| 165 | $xoopsOption['template_main'] = 'xfguestbook_signform.tpl'; |
||
| 166 | $xoopsTpl->assign('preview', true); |
||
| 167 | $xoopsTpl->assign('msgstop', $msgstop); |
||
| 168 | include_once __DIR__ . '/include/form_sign.inc.php'; |
||
| 169 | $signform->assign($xoopsTpl); |
||
| 170 | include XOOPS_ROOT_PATH . '/footer.php'; |
||
| 171 | exit(); |
||
| 172 | } |
||
| 173 | $photos_dir = XOOPS_UPLOAD_PATH . '/' . $xoopsModule->getVar('dirname'); |
||
| 174 | if ('' !== $preview_name) { |
||
| 175 | $photo = str_replace('tmp_', 'msg_', $preview_name); |
||
| 176 | rename("$photos_dir/$preview_name", "$photos_dir/$photo"); |
||
| 177 | } |
||
| 178 | |||
| 179 | $msgpost = $msg_handler->create(); |
||
| 180 | $xoopsUser ? $user_id = $xoopsUser->uid() : $user_id = 0; |
||
|
0 ignored issues
–
show
|
|||
| 181 | $xoopsUser ? $username = $xoopsUser->uname() : $username = $name; |
||
|
0 ignored issues
–
show
|
|||
| 182 | $msgpost->setVar('user_id', $user_id); |
||
| 183 | $msgpost->setVar('uname', $username); |
||
| 184 | $msgpost->setVar('title', $title); |
||
| 185 | $msgpost->setVar('message', $message); |
||
| 186 | $msgpost->setVar('note', ''); |
||
| 187 | $msgpost->setVar('post_time', time()); |
||
| 188 | $msgpost->setVar('email', $email); |
||
| 189 | $msgpost->setVar('url', $url); |
||
| 190 | $msgpost->setVar('poster_ip', $_SERVER['REMOTE_ADDR']); |
||
| 191 | $msgpost->setVar('country', $country); |
||
| 192 | $msgpost->setVar('flagdir', $xoopsModuleConfig['flagdir']); |
||
| 193 | $msgpost->setVar('gender', $gender); |
||
| 194 | if (!isset($photo)) { |
||
| 195 | $photo = ''; |
||
| 196 | } |
||
| 197 | $msgpost->setVar('photo', $photo); |
||
| 198 | |||
| 199 | if ($badip) { |
||
| 200 | $msgpost->setVar('moderate', 1); |
||
| 201 | } else { |
||
| 202 | $msgpost->setVar('moderate', $xoopsModuleConfig['moderate']); |
||
| 203 | } |
||
| 204 | $nb_removed_tmp = xfgb_clear_tmp_files($photos_dir); |
||
| 205 | $messagesent = _MD_XFGB_MESSAGESENT; |
||
| 206 | |||
| 207 | if ($msg_handler->insert($msgpost)) { |
||
| 208 | if ($badip || $xoopsModuleConfig['moderate']) { |
||
| 209 | $messagesent .= '<br>' . _MD_XFGB_AFTERMODERATE; |
||
| 210 | } |
||
| 211 | |||
| 212 | // Send mail to webmaster |
||
| 213 | if (1 == $xoopsModuleConfig['sendmail2wm']) { |
||
| 214 | $subject = $xoopsConfig['sitename'] . ' - ' . _MD_XFGB_NAMEMODULE; |
||
| 215 | $xoopsMailer =& xoops_getMailer(); |
||
| 216 | $xoopsMailer->useMail(); |
||
| 217 | $xoopsMailer->setToEmails($xoopsConfig['adminmail']); |
||
| 218 | $xoopsMailer->setFromEmail($xoopsConfig['adminmail']); |
||
| 219 | $xoopsMailer->setFromName($xoopsConfig['sitename']); |
||
| 220 | $xoopsMailer->setSubject($subject); |
||
| 221 | $xoopsMailer->setBody(_MD_XFGB_NEWMESSAGE . ' ' . XOOPS_URL . '/modules/' . $xoopsModule->dirname() . '/'); |
||
| 222 | if (!$xoopsMailer->send()) { |
||
| 223 | echo $xoopsMailer->getErrors(); |
||
| 224 | } |
||
| 225 | } |
||
| 226 | redirect_header('index.php', 2, $messagesent); |
||
| 227 | } else { |
||
| 228 | $messagesent = $msgpost->getHtmlErrors(); |
||
| 229 | redirect_header('index.php', 2, $messagesent); |
||
| 230 | } |
||
| 231 | break; |
||
| 232 | |||
| 233 | case 'form': |
||
| 234 | default: |
||
| 235 | $xoopsOption['template_main'] = 'xfguestbook_signform.tpl'; |
||
| 236 | |||
| 237 | include XOOPS_ROOT_PATH . '/header.php'; |
||
| 238 | $user_id = !empty($xoopsUser) ? $xoopsUser->getVar('uid', 'E') : 0; |
||
|
0 ignored issues
–
show
|
|||
| 239 | $name = !empty($xoopsUser) ? $xoopsUser->getVar('uname', 'E') : ''; |
||
|
0 ignored issues
–
show
|
|||
| 240 | $email = !empty($xoopsUser) ? $xoopsUser->getVar('email', 'E') : ''; |
||
|
0 ignored issues
–
show
|
|||
| 241 | $url = !empty($xoopsUser) ? $xoopsUser->getVar('url', 'E') : ''; |
||
|
0 ignored issues
–
show
|
|||
| 242 | $country = $option['countrybydefault']; |
||
| 243 | |||
| 244 | if (1 == $option['opt_code']) { |
||
| 245 | xoops_load('XoopsCaptcha'); |
||
| 246 | $xoopsCaptcha = XoopsCaptcha::getInstance(); |
||
| 247 | } |
||
| 248 | if ($badip || $xoopsModuleConfig['moderate']) { |
||
| 249 | $xoopsTpl->assign('moderate', _MD_XFGB_MODERATED); |
||
| 250 | } |
||
| 251 | |||
| 252 | include __DIR__ . '/include/form_sign.inc.php'; |
||
| 253 | $signform->assign($xoopsTpl); |
||
| 254 | include XOOPS_ROOT_PATH . '/footer.php'; |
||
| 255 | break; |
||
| 256 | } |
||
| 257 |
Methods can only be called on objects. This check looks for methods being called on variables that have been inferred to never be objects.