All pastes #732815 Raw Edit

Zeug

public text v1 · immutable
·published 2007-10-11 08:37 UTC
rendered paste body
<?php 
#   Copyright by: Manuel Staechele
#   Support: www.ilch.de


defined ('main') or die ( 'no direct access' );

function icUpload () {

      $url = ( empty($_POST['url']) ? '' : escape($_POST['url'],'string') );
      
      if (empty($url) AND empty($_FILES['file']['name'])) {
        return ('Keine Datei oder Link angegeben.');
      }
  
	    if (!empty ($_FILES['file']['name']) ) {
      
		    $rtype = trim(ic_mime_type ($_FILES['file']['tmp_name']));
        $fname = escape($_FILES['file']['name'],'string');
        $fende = preg_replace("/.+\.([a-zA-Z]+)$/", "\\1", $fname);
        $fende = strtolower($fende);
        
		    if ( $_FILES['file']['size'] > 2097000 ) { # 2 mb (2 097 152)
          return ('Die Datei darf NICHT gr&ouml;sser als 2 MBytes sein.');
        }
        
        if (
		      ($fende != 'rar' AND $fende != 'zip' AND $fende != 'tar')
                   
          OR (
          $rtype != 'application/x-rar' AND
          $rtype != 'application/x-zip' AND
          $rtype != 'application/x-tar')

		    ) {
          return ('Die Datei darf nur die Endungen: .zip, .tar oder .rar haben.');
        }
        
        $fname = str_replace ('.'.$fende, '', $fname);
        $fname = preg_replace("/[^a-zA-Z0-9]/", "", $fname);
        $fname = $fname.'.'.$fende;
        
        if (file_exists( 'include/downs/forumloads/'.$fname ) ) {
          return ('Die Datei existiert bereits und kann nicht &uuml;berschrieben werden.');
        }
        
        if ( move_uploaded_file($_FILES['file']['tmp_name'], 'include/downs/forumloads/'.$fname) ) {
          $url = 'include/downs/forumloads/'.$fname;
          @chmod($url, 0777);
			  }
      }
        
      if (empty($url)) {
        return ('Keine Datei oder Link angegeben');
      }
        
      return (true);
}

if ($aktTopicRow['stat'] == 0 OR $forum_rights['reply'] == FALSE ) {
  if ( $aktTopicRow['stat'] == 0 ) {
	  $forum_failure[] = $lang['topicclosed'];  
	} else {
	  $forum_failure[] = $lang['nopermission'];
	}
	check_forum_failure($forum_failure);
}

$title = $allgAr['title'].' :: Forum :: '.aktForumCats($aktForumRow['kat'],'title').' :: '.$aktForumRow['name'].' :: neuer Beitrag';
$hmenu  = $extented_forum_menu.'<a class="smalfont" href="index.php?forum">Forum</a><b> &raquo; </b>'.aktForumCats($aktForumRow['kat']).'<b> &raquo; </b><a class="smalfont" href="index.php?forum-showtopics-'.$fid.'">'.$aktForumRow['name'].'</a><b> &raquo; </b>';
$hmenu .= '<a class="smalfont" href="index.php?forum-showposts-'.$tid.'">'.$aktTopicRow['name'].'</a>'.$extented_forum_menu_sufix;


$dppk_time = time();
$time = time();
if (!isset($_SESSION['klicktime'])) { $_SESSION['klicktime'] = 0; }

$topic = '';
$txt   = '';
$xnn   = '';

if (isset($_POST['txt'])) {
  $txt = trim(escape($_POST['txt'], 'textarea'));
}
if (isset($_POST['Gname'])) {
  $xnn = trim(escape_nickname($_POST['Gname']));
}

if (($_SESSION['klicktime'] + 15) > $dppk_time OR empty($txt) OR !empty($_POST['priview']) OR (empty($_POST['Gname']) AND !loggedin())) {

  $design = new design ( $title , $hmenu, 1);
  $design->header();

  $name = '';
  if ( !loggedin() ) {
    $name  = '<tr><td class="Cmite"0><b>'.$lang['name'].'</b></td>'; 
    $name .= '<td class="Cnorm"><input type="text" value="'.unescape($xnn).'" maxlength="15" name="Gname"></td></tr>';
  }
  
  $tpl = new tpl ('forum/newpost');

  $xtext = '';
  if ( $menu->getA(3) == 'z' ) {
    $row = db_fetch_object(db_query("SELECT txt,erst FROM prefix_posts WHERE id = ".$menu->getE(3)));
	  $xtext = '[quote='.escape_nickname($row->erst).']'."\n".$row->txt."\n[/quote]";
  }

  if ( $menu->getA(3) == 'f' ) {
    $r = db_fetch_assoc(db_query("SELECT id,text,title FROM prefix_faqs WHERE id = ".$menu->getE(3)));
	  $xtext = 'FAQ Artikel: [url=index.php?faqs-s'.$r['id'].'#FAQ'.$r['id'].']'.$r['title'].'[/url]'."\n".unescape($r['text']);
  }

  if (isset($_POST['priview'])) {
    $tpl->set_out('txt', FE_Vote2HTML(1,bbcode($txt),TRUE), 0);
  }
  if (empty($txt)) {
    $txt = $xtext;
  }

  $tpl = new tpl ('forum/newpost');

  $ar = array (
    'txt'    => escape_for_fields(unescape($txt)),
    'tid'    => $tid,
    'name'   => $name,
    'SMILIES'  => getsmilies()
  );
  
  $tpl->set_ar_out($ar,1);
			
  $erg = db_query('SELECT id, erst, txt FROM `prefix_posts` WHERE tid = "'.$tid.'" ORDER BY time DESC LIMIT 0,5');
  while ($row = db_fetch_assoc($erg)) {
    $row['txt'] = bbcode($row['txt']);
    
   //Forumex - begin
    $row['txt'] = FE_Vote2HTML($row['id'],$row['txt'],TRUE);
    //Forumex - end
    
    $tpl->set_ar_out($row, 2);
  }
  $tpl->out(3);
  
  
} else {

  # save post
  $_SESSION['klicktime'] = $dppk_time;
  
  $design = new design ( $title , $hmenu, 1);
  $design->header();
  
  if (loggedin()) { 
    $uid = $_SESSION['authid']; 
		$erst = escape($_SESSION['authname'],'string'); 
	  db_query("UPDATE `prefix_user` set posts = posts+1 WHERE id = ".$uid);
  } else  { 
	  $erst = $xnn;  
		$uid = 0; 
  }
      
  # topic alert ausfuehren.
  $topic_alerts_abf = "SELECT
      prefix_topics.name as topic,
      prefix_user.email as email,
      prefix_user.name as user,
      prefix_user.id as uid
    FROM prefix_topic_alerts
      LEFT JOIN prefix_topics ON prefix_topics.id = prefix_topic_alerts.tid
      LEFT JOIN prefix_user   ON prefix_user.id   = prefix_topic_alerts.uid
    WHERE prefix_topic_alerts.tid = ".$tid;
      
  $topic_alerts_erg = db_query($topic_alerts_abf);
  while ($topic_alerts_row = db_fetch_assoc($topic_alerts_erg)) {
    if ($uid == $topic_alerts_row['uid']) continue;
    $page = $_SERVER["HTTP_HOST"].$_SERVER["SCRIPT_NAME"];
    $text = sprintf ($lang['topicalertmessage'], $topic_alerts_row['user'], $topic_alerts_row['topic'], $page, $tid);
    icmail ($topic_alerts_row['email'], 'neue Antwort im Thema: "'.$topic_alerts_row['topic'].'"', $text);
    debug ($topic_alerts_row['email']);
  }
  db_query("DELETE FROM prefix_topic_alerts WHERE tid = ".$tid);
      
  # topic alert insert wenn gewaehlt.
  if (!empty($_POST['topic_alert']) AND $_POST['topic_alert'] == 'yes' AND loggedin()) {
    if (0 == db_result(db_query("SELECT COUNT(*) FROM prefix_topic_alerts WHERE uid = ".$_SESSION['authid']." AND tid = ".$tid),0)) {
      db_query("INSERT INTO prefix_topic_alerts (tid,uid) VALUES (".$tid.", ".$_SESSION['authid'].")");
    }
  }
  # topic alert ende
  if ( loggedin() AND is_writeable ( 'include/downs/forumloads' ) ) {
    $re = icUpload(); 
	    if ($re === true) {
	    
        db_query ("INSERT INTO `prefix_posts` (tid,fid,erst,erstid,time,txt,url) VALUES ( ".$tid.", ".$fid.", '".$erst."', ".$uid.", ".$time.", '".$txt."', '".$re."')");

  $pid = db_last_id();
			
	db_query("UPDATE `prefix_topics` SET last_post_id = ".$pid.", rep = rep + 1 WHERE id = ".$tid);
	db_query("UPDATE `prefix_forums` SET posts = posts + 1, last_post_id = ".$pid." WHERE id = ".$fid );
			
  //Forumex - begin
  FE_CreateVote($pid,$txt);
  //Forumex - end   
			
	$page = ceil ( ($aktTopicRow['rep']+1)  / $allgAr['Fpanz'] );
	
  # toipc als gelesen markieren
  $_SESSION['forumSEE'][$fid][$tid] = time();
   
	wd ( array ( 
	  $lang['backtotopic'] => 'index.php?forum-showposts-'.$tid.'-p'.$page.'#'.$pid,
		$lang['backtotopicoverview'] => 'index.php?forum-showtopics-'.$fid
	) , $lang['createpostsuccessful'] , 3 );
      } else {
        echo '<b>Error:</b><br />'.$re;
      }  
  }
}

$design->footer();									
?>