[ Index ]
 

Code source de PunBB 1.2.16

Accédez au Source d'autres logiciels libres

title

Body

[fermer]

/upload/ -> misc.php (source)

   1  <?php
   2  /***********************************************************************

   3  

   4    Copyright (C) 2002-2005  Rickard Andersson (rickard@punbb.org)

   5  

   6    This file is part of PunBB.

   7  

   8    PunBB is free software; you can redistribute it and/or modify it

   9    under the terms of the GNU General Public License as published

  10    by the Free Software Foundation; either version 2 of the License,

  11    or (at your option) any later version.

  12  

  13    PunBB is distributed in the hope that it will be useful, but

  14    WITHOUT ANY WARRANTY; without even the implied warranty of

  15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the

  16    GNU General Public License for more details.

  17  

  18    You should have received a copy of the GNU General Public License

  19    along with this program; if not, write to the Free Software

  20    Foundation, Inc., 59 Temple Place, Suite 330, Boston,

  21    MA  02111-1307  USA

  22  

  23  ************************************************************************/
  24  
  25  
  26  if (isset($_GET['action']))
  27      define('PUN_QUIET_VISIT', 1);
  28  
  29  define('PUN_ROOT', './');
  30  require  PUN_ROOT.'include/common.php';
  31  
  32  
  33  // Load the misc.php language file

  34  require PUN_ROOT.'lang/'.$pun_user['language'].'/misc.php';
  35  
  36  $action = isset($_GET['action']) ? $_GET['action'] : null;
  37  
  38  
  39  if ($action == 'rules')
  40  {
  41      // Load the register.php language file

  42      require PUN_ROOT.'lang/'.$pun_user['language'].'/register.php';
  43  
  44      $page_title = pun_htmlspecialchars($pun_config['o_board_title']).' / '.$lang_register['Forum rules'];
  45      require  PUN_ROOT.'header.php';
  46  
  47  ?>
  48  <div class="block">
  49      <h2><span><?php echo $lang_register['Forum rules'] ?></span></h2>
  50      <div class="box">
  51          <div class="inbox">
  52              <p><?php echo $pun_config['o_rules_message'] ?></p>
  53          </div>
  54      </div>
  55  </div>
  56  <?php
  57  
  58      require  PUN_ROOT.'footer.php';
  59  }
  60  
  61  
  62  else if ($action == 'markread')
  63  {
  64      if ($pun_user['is_guest'])
  65          message($lang_common['No permission']);
  66  
  67      $db->query('UPDATE '.$db->prefix.'users SET last_visit='.$pun_user['logged'].' WHERE id='.$pun_user['id']) or error('Unable to update user last visit data', __FILE__, __LINE__, $db->error());
  68  
  69      redirect('index.php', $lang_misc['Mark read redirect']);
  70  }
  71  
  72  
  73  else if (isset($_GET['email']))
  74  {
  75      if ($pun_user['is_guest'])
  76          message($lang_common['No permission']);
  77  
  78      $recipient_id = intval($_GET['email']);
  79      if ($recipient_id < 2)
  80          message($lang_common['Bad request']);
  81  
  82      $result = $db->query('SELECT username, email, email_setting FROM '.$db->prefix.'users WHERE id='.$recipient_id) or error('Unable to fetch user info', __FILE__, __LINE__, $db->error());
  83      if (!$db->num_rows($result))
  84          message($lang_common['Bad request']);
  85  
  86      list($recipient, $recipient_email, $email_setting) = $db->fetch_row($result);
  87  
  88      if ($email_setting == 2 && $pun_user['g_id'] > PUN_MOD)
  89          message($lang_misc['Form e-mail disabled']);
  90  
  91  
  92      if (isset($_POST['form_sent']))
  93      {
  94          // Clean up message and subject from POST

  95          $subject = pun_trim($_POST['req_subject']);
  96          $message = pun_trim($_POST['req_message']);
  97  
  98          if ($subject == '')
  99              message($lang_misc['No e-mail subject']);
 100          else if ($message == '')
 101              message($lang_misc['No e-mail message']);
 102          else if (strlen($message) > 65535)
 103              message($lang_misc['Too long e-mail message']);
 104  
 105          // Load the "form e-mail" template

 106          $mail_tpl = trim(file_get_contents(PUN_ROOT.'lang/'.$pun_user['language'].'/mail_templates/form_email.tpl'));
 107  
 108          // The first row contains the subject

 109          $first_crlf = strpos($mail_tpl, "\n");
 110          $mail_subject = trim(substr($mail_tpl, 8, $first_crlf-8));
 111          $mail_message = trim(substr($mail_tpl, $first_crlf));
 112  
 113          $mail_subject = str_replace('<mail_subject>', $subject, $mail_subject);
 114          $mail_message = str_replace('<sender>', $pun_user['username'], $mail_message);
 115          $mail_message = str_replace('<board_title>', $pun_config['o_board_title'], $mail_message);
 116          $mail_message = str_replace('<mail_message>', $message, $mail_message);
 117          $mail_message = str_replace('<board_mailer>', $pun_config['o_board_title'].' '.$lang_common['Mailer'], $mail_message);
 118  
 119          require_once  PUN_ROOT.'include/email.php';
 120  
 121          pun_mail($recipient_email, $mail_subject, $mail_message, '"'.str_replace('"', '', $pun_user['username']).'" <'.$pun_user['email'].'>');
 122  
 123          redirect(htmlspecialchars($_POST['redirect_url']), $lang_misc['E-mail sent redirect']);
 124      }
 125  
 126  
 127      // Try to determine if the data in HTTP_REFERER is valid (if not, we redirect to the users profile after the e-mail is sent)

 128      $redirect_url = (isset($_SERVER['HTTP_REFERER']) && preg_match('#^'.preg_quote($pun_config['o_base_url']).'/(.*?)\.php#i', $_SERVER['HTTP_REFERER'])) ? htmlspecialchars($_SERVER['HTTP_REFERER']) : 'index.php';
 129  
 130      $page_title = pun_htmlspecialchars($pun_config['o_board_title']).' / '.$lang_misc['Send e-mail to'].' '.pun_htmlspecialchars($recipient);
 131      $required_fields = array('req_subject' => $lang_misc['E-mail subject'], 'req_message' => $lang_misc['E-mail message']);
 132      $focus_element = array('email', 'req_subject');
 133      require  PUN_ROOT.'header.php';
 134  
 135  ?>
 136  <div class="blockform">
 137      <h2><span><?php echo $lang_misc['Send e-mail to'] ?> <?php echo pun_htmlspecialchars($recipient) ?></span></h2>
 138      <div class="box">
 139          <form id="email" method="post" action="misc.php?email=<?php echo $recipient_id ?>" onsubmit="this.submit.disabled=true;if(process_form(this)){return true;}else{this.submit.disabled=false;return false;}">
 140              <div class="inform">
 141                  <fieldset>
 142                      <legend><?php echo $lang_misc['Write e-mail'] ?></legend>
 143                      <div class="infldset txtarea">
 144                          <input type="hidden" name="form_sent" value="1" />
 145                          <input type="hidden" name="redirect_url" value="<?php echo $redirect_url ?>" />
 146                          <label><strong><?php echo $lang_misc['E-mail subject'] ?></strong><br />
 147                          <input class="longinput" type="text" name="req_subject" size="75" maxlength="70" tabindex="1" /><br /></label>
 148                          <label><strong><?php echo $lang_misc['E-mail message'] ?></strong><br />
 149                          <textarea name="req_message" rows="10" cols="75" tabindex="2"></textarea><br /></label>
 150                          <p><?php echo $lang_misc['E-mail disclosure note'] ?></p>
 151                      </div>
 152                  </fieldset>
 153              </div>
 154              <p><input type="submit" name="submit" value="<?php echo $lang_common['Submit'] ?>" tabindex="3" accesskey="s" /><a href="javascript:history.go(-1)"><?php echo $lang_common['Go back'] ?></a></p>
 155          </form>
 156      </div>
 157  </div>
 158  <?php
 159  
 160      require  PUN_ROOT.'footer.php';
 161  }
 162  
 163  
 164  else if (isset($_GET['report']))
 165  {
 166      if ($pun_user['is_guest'])
 167          message($lang_common['No permission']);
 168  
 169      $post_id = intval($_GET['report']);
 170      if ($post_id < 1)
 171          message($lang_common['Bad request']);
 172  
 173      if (isset($_POST['form_sent']))
 174      {
 175          // Clean up reason from POST

 176          $reason = pun_linebreaks(pun_trim($_POST['req_reason']));
 177          if ($reason == '')
 178              message($lang_misc['No reason']);
 179  
 180          // Get the topic ID

 181          $result = $db->query('SELECT topic_id FROM '.$db->prefix.'posts WHERE id='.$post_id) or error('Unable to fetch post info', __FILE__, __LINE__, $db->error());
 182          if (!$db->num_rows($result))
 183              message($lang_common['Bad request']);
 184  
 185          $topic_id = $db->result($result);
 186  
 187          // Get the subject and forum ID

 188          $result = $db->query('SELECT subject, forum_id FROM '.$db->prefix.'topics WHERE id='.$topic_id) or error('Unable to fetch topic info', __FILE__, __LINE__, $db->error());
 189          if (!$db->num_rows($result))
 190              message($lang_common['Bad request']);
 191  
 192          list($subject, $forum_id) = $db->fetch_row($result);
 193  
 194          // Should we use the internal report handling?

 195          if ($pun_config['o_report_method'] == 0 || $pun_config['o_report_method'] == 2)
 196              $db->query('INSERT INTO '.$db->prefix.'reports (post_id, topic_id, forum_id, reported_by, created, message) VALUES('.$post_id.', '.$topic_id.', '.$forum_id.', '.$pun_user['id'].', '.time().', \''.$db->escape($reason).'\')' ) or error('Unable to create report', __FILE__, __LINE__, $db->error());
 197  
 198          // Should we e-mail the report?

 199          if ($pun_config['o_report_method'] == 1 || $pun_config['o_report_method'] == 2)
 200          {
 201              // We send it to the complete mailing-list in one swoop

 202              if ($pun_config['o_mailing_list'] != '')
 203              {
 204                  $mail_subject = 'Signalement ('.$forum_id.') - \''.$subject.'\'';
 205                  $mail_message = 'L\'utilisateur \''.$pun_user['username'].'\' a signalé le message suivant :'."\n".$pun_config['o_base_url'].'/viewtopic.php?pid='.$post_id.'#p'.$post_id."\n\n".'Motif :'."\n".$reason;
 206  
 207                  require  PUN_ROOT.'include/email.php';
 208  
 209                  pun_mail($pun_config['o_mailing_list'], $mail_subject, $mail_message);
 210              }
 211          }
 212  
 213          redirect('viewtopic.php?pid='.$post_id.'#p'.$post_id, $lang_misc['Report redirect']);
 214      }
 215  
 216  
 217      $page_title = pun_htmlspecialchars($pun_config['o_board_title']).' / '.$lang_misc['Report post'];
 218      $required_fields = array('req_reason' => $lang_misc['Reason']);
 219      $focus_element = array('report', 'req_reason');
 220      require  PUN_ROOT.'header.php';
 221  
 222  ?>
 223  <div class="blockform">
 224      <h2><span><?php echo $lang_misc['Report post'] ?></span></h2>
 225      <div class="box">
 226          <form id="report" method="post" action="misc.php?report=<?php echo $post_id ?>" onsubmit="this.submit.disabled=true;if(process_form(this)){return true;}else{this.submit.disabled=false;return false;}">
 227              <div class="inform">
 228                  <fieldset>
 229                      <legend><?php echo $lang_misc['Reason desc'] ?></legend>
 230                      <div class="infldset txtarea">
 231                          <input type="hidden" name="form_sent" value="1" />
 232                          <label><strong><?php echo $lang_misc['Reason'] ?></strong><br /><textarea name="req_reason" rows="5" cols="60"></textarea><br /></label>
 233                      </div>
 234                  </fieldset>
 235              </div>
 236              <p><input type="submit" name="submit" value="<?php echo $lang_common['Submit'] ?>" accesskey="s" /><a href="javascript:history.go(-1)"><?php echo $lang_common['Go back'] ?></a></p>
 237          </form>
 238      </div>
 239  </div>
 240  <?php
 241  
 242      require  PUN_ROOT.'footer.php';
 243  }
 244  
 245  
 246  else if (isset($_GET['subscribe']))
 247  {
 248      if ($pun_user['is_guest'] || $pun_config['o_subscriptions'] != '1')
 249          message($lang_common['No permission']);
 250  
 251      $topic_id = intval($_GET['subscribe']);
 252      if ($topic_id < 1)
 253          message($lang_common['Bad request']);
 254  
 255      $result = $db->query('SELECT 1 FROM '.$db->prefix.'subscriptions WHERE user_id='.$pun_user['id'].' AND topic_id='.$topic_id) or error('Unable to fetch subscription info', __FILE__, __LINE__, $db->error());
 256      if ($db->num_rows($result))
 257          message($lang_misc['Already subscribed']);
 258  
 259      $db->query('INSERT INTO '.$db->prefix.'subscriptions (user_id, topic_id) VALUES('.$pun_user['id'].' ,'.$topic_id.')') or error('Unable to add subscription', __FILE__, __LINE__, $db->error());
 260  
 261      redirect('viewtopic.php?id='.$topic_id, $lang_misc['Subscribe redirect']);
 262  }
 263  
 264  
 265  else if (isset($_GET['unsubscribe']))
 266  {
 267      if ($pun_user['is_guest'] || $pun_config['o_subscriptions'] != '1')
 268          message($lang_common['No permission']);
 269  
 270      $topic_id = intval($_GET['unsubscribe']);
 271      if ($topic_id < 1)
 272          message($lang_common['Bad request']);
 273  
 274      $result = $db->query('SELECT 1 FROM '.$db->prefix.'subscriptions WHERE user_id='.$pun_user['id'].' AND topic_id='.$topic_id) or error('Unable to fetch subscription info', __FILE__, __LINE__, $db->error());
 275      if (!$db->num_rows($result))
 276          message($lang_misc['Not subscribed']);
 277  
 278      $db->query('DELETE FROM '.$db->prefix.'subscriptions WHERE user_id='.$pun_user['id'].' AND topic_id='.$topic_id) or error('Unable to remove subscription', __FILE__, __LINE__, $db->error());
 279  
 280      redirect('viewtopic.php?id='.$topic_id, $lang_misc['Unsubscribe redirect']);
 281  }
 282  
 283  
 284  else
 285      message($lang_common['Bad request']);


Généré le : Sat Nov 24 22:44:38 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics