no have access to FORUMMANAGE

Started by theilya2, January 15, 2014, 11:55:53 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Mindless

That logic is flawed

!== 0 is looking for any id thats not 0 & !== 1 the same, it should be == 1 - that then assures that only the registered sysop has access

This is what to use

Code (php) Select
/* add your allowed ids to this check*/
$allowed_ids = array(
    1
);
if (!in_array($CURUSER['id'], $allowed_ids)) stderr('Error', 'Access Denied!');

fireknight

#3
If you have not altered the class settings in config.php, then it is not a class issue

define ('UC_USER', 0);
define ('UC_POWER_USER', 1);
define ('UC_VIP', 2);
define ('UC_UPLOADER', 3);
define ('UC_MODERATOR', 4);
define ('UC_ADMINISTRATOR', 5);
define ('UC_SYSOP', 6);


If you look at this line

if( (get_user_class() < UC_ADMINISTRATOR) || ($CURUSER['id'] !== '0')) //sysop id check


You will notice there is also an ID clause added.
Chances are you do not match the used id stated.

EDIT

Original line of code from the virgin source.

if( (get_user_class() < UC_MODERATOR) || ($CURUSER['id'] !== '1')) //sysop id check

autotron

class level 6 tells us nothing..what level is Admin?


Quote from: theilya2 on January 15, 2014, 11:55:53 PM
Hello
i trying to edit my forums and i have no access i am calass level 6
and when i trying to get insite i get message "access denied"

forummanage.php

<?php
/*
+------------------------------------------------
|   TBDev.net BitTorrent Tracker PHP
|   =============================================
|   by CoLdFuSiOn
|   (c) 2003 - 2009 TBDev.Net
|   http://www.tbdev.net
|   =============================================
|   svn: http://sourceforge.net/projects/tbdevnet/
|   Licence Info: GPL
+------------------------------------------------
|   $Date$
|   $Revision$
|   $Author$
|   $URL$
+------------------------------------------------
*/

if ( ! defined'IN_TBDEV_ADMIN' ) )
{
print "<h1>Incorrect access</h1>You cannot access this file directly.";
exit();
}

require_once 
"include/html_functions.php";
require_once 
"include/user_functions.php";



    
$lang array_merge$langload_language('ad_forummanage') );
    
    if( (
get_user_class() < UC_ADMINISTRATOR) || ($CURUSER['id'] !== '0')) //sysop id check
    
stderr("{$lang['stderr_error']}""{$lang['text_permission']}");

    
$mode = isset($_GET['mode']) ? $_GET['mode'] : ''//if not goto default!


    
switch($mode) {
case 'edit'
editForum();
break;

case 'takeedit':
takeeditForum();
break;

case 'delete':
deleteForum();
break;

case 'takedelete':
takedeleteForum();
break;

case 'add':
addForum();
break;

case 'takeadd':
takeaddForum();
break;

default:
showForums();

}



function 
showForums() {

    global 
$lang;
    
    
$HTMLOUT '';
    
$HTMLOUT .= "<span class='btn'><a href='admin.php?action=forummanage&amp;mode=add'>{$lang['btn_addnew']}</a></span><br /><br />";
    
$HTMLOUT .= begin_main_frame();
    
$HTMLOUT .= "<table width='700' border='0' align='center' cellpadding='2' cellspacing='0'>";
    
$HTMLOUT .= "<tr><td class='colhead' align='left'>{$lang['header_name']}</td><td class='colhead'>{$lang['header_topics']}</td><td class='colhead'>{$lang['header_posts']}</td><td class='colhead'>{$lang['header_read']}</td><td class='colhead'>{$lang['header_write']}</td><td class='colhead'>{$lang['header_createtopic']}</td><td class='colhead'>{$lang['header_modify']}</td></tr>";
    
$result mysql_query ("SELECT  * FROM forums ORDER BY sort ASC");
    if ( 
mysql_num_rows($result) > 0) {

      while(
$row mysql_fetch_assoc($result)){

      
$HTMLOUT .= "<tr><td><a href='forums.php?action=viewforum&amp;forumid={$row["id"]}'><b>".htmlentities($row["name"], ENT_QUOTES)."</b></a><br />".htmlentities($row["description"], ENT_QUOTES)."</td>";
      
$HTMLOUT .= "<td>{$row["topiccount"]}</td><td>{$row["postcount"]}</td><td>{$lang['text_minimal']} " get_user_class_name($row["minclassread"]) . "</td><td>{$lang['text_minimal']} " get_user_class_name($row["minclasswrite"]) . "</td><td>{$lang['text_minimal']} " get_user_class_name($row["minclasscreate"]) . "</td><td align='center' style='white-space: nowrap;'><b><a href='admin.php?action=forummanage&amp;mode=edit&amp;id={$row["id"]}'>{$lang['text_edit']}</a>&nbsp;|&nbsp;<a href='admin.php?action=forummanage&amp;mode=delete&amp;id={$row["id"]}'><font color='red'>{$lang['text_delete']}</font></a></b></td></tr>"
          
    } 
    } 
    else 
    {
$HTMLOUT .= "<tr><td colspan='7'>{$lang['text_sorry']}</td></tr>";}       
    
$HTMLOUT .= "</table>";

    
$HTMLOUT .= end_main_frame();
    
    print 
stdhead("{$lang['stdhead_forummanagetools']}") . $HTMLOUT stdfoot();
}

function 
addForum() {
    global 
$CURUSER$lang;

    
    
$HTMLOUT '';
    
$HTMLOUT .= "<span class='btn'><a href='admin.php?action=forummanage'>{$lang['btn_cancel']}</a></span><br /><br />";
    
$HTMLOUT .= begin_main_frame();


    
$HTMLOUT .= "<form method='post' action='admin.php?action=forummanage&amp;mode=takeadd'>
    <table width='600'  border='0' cellspacing='0' cellpadding='3' align='center'>
      <tr align='center'>
        <td colspan='2' class='colhead'>
{$lang['header_makenew']}</td>
      </tr>
      <tr>
        <td><b>
{$lang['table_forumname']}</b></td>
        <td><input name='name' type='text' size='20' maxlength='60' /></td>
      </tr>
      <tr>
        <td><b>
{$lang['table_forumdescr']}</b></td>
        <td><input name='desc' type='text' size='30' maxlength='200' /></td>
      </tr>
      <tr>
        <td><b>
{$lang['table_minreadperm']}</b></td>
        <td><select name='readclass'>"
;

    
$maxclass get_user_class();
      for (
$i 0$i <= $maxclass; ++$i)
      
$HTMLOUT .= "<option value='$i'" . ($CURUSER["class"] == $i " selected='selected'" "") . ">" get_user_class_name($i) . "</option>\n";

        
$HTMLOUT .= "</select>
        </td>
      </tr>
      <tr>
        <td><b>
{$lang['table_minwriteperm']}</b></td>
        <td><select name='writeclass'>"
;

    
$maxclass get_user_class();
      for (
$i 0$i <= $maxclass; ++$i)
      
$HTMLOUT .= "<option value='$i'" . ($CURUSER["class"] == $i " selected='selected'" "") . ">" get_user_class_name($i) . "</option>\n";

        
$HTMLOUT .= "</select></td>
      </tr>
      <tr>
        <td><b>
{$lang['table_mincreatetperm']}</b></td>
        <td><select name='createclass'>"
;

    
$maxclass get_user_class();
      for (
$i 0$i <= $maxclass; ++$i)
      
$HTMLOUT .= "<option value='$i'" . ($CURUSER["class"] == $i " selected='selected'" "") . ">" get_user_class_name($i) . "</option>\n";

        
$HTMLOUT .= "</select></td>
      </tr>
      <tr>
        <td><b>
{$lang['table_forumrank']}</b></td>
        <td><select name='sort'>"
;

    
$res mysql_query ("SELECT sort FROM forums");
    
$nr mysql_num_rows($res);
    
$maxclass $nr 1;
      for (
$i 0$i <= $maxclass; ++$i)
      
$HTMLOUT .= "<option value='$i'>$i </option>\n";

        
$HTMLOUT .= "</select>
     
        </td>
      </tr>

      <tr align='center'>
        <td colspan='2'>
        <!--<input type='hidden' name='action' value='takeadd' /> -->
        <input type='submit' name='Submit' value='
{$lang['btn_makeforum']}' class='btn' /></td>
      </tr>
      </table>
            </form>"
;

    
// end_frame();
    
$HTMLOUT .= end_main_frame();
   
    print 
stdhead("{$lang['stdhead_addforum']}") . $HTMLOUT stdfoot();

}

function 
editForum() {

    global 
$lang;
    
    
$id = isset($_GET["id"]) ? (int)$_GET["id"] : stderr("Error""Not Found");

    
$HTMLOUT '';
    
$HTMLOUT .= "<span class='btn'><a href='admin.php?action=forummanage'>{$lang['btn_cancel']}</a></span><br /><br />";

    
$HTMLOUT .= begin_frame("{$lang['frame_editforum']}");
    
    
$result mysql_query ("SELECT * FROM forums where id = '$id'");
    if (
mysql_num_rows($result) > 0) {
      while(
$row mysql_fetch_assoc($result)){


      
$HTMLOUT .= "<form method='post' action='admin.php?action=forummanage&amp;mode=takeedit'>
      <table width='600'  border='0' cellspacing='0' cellpadding='3' align='center'>
      <tr align='center'>
        <td colspan='2' class='colhead'>
{$lang['header_editforum']} ".htmlentities($row["name"], ENT_QUOTES)."</td>
      </tr>
      <tr>
        <td><b>
{$lang['table_forumname']}</b></td>
        <td><input name='name' type='text' size='30' maxlength='60' value='"
.htmlentities($row["name"], ENT_QUOTES)."' /></td>
      </tr>
      <tr>
        <td><b>
{$lang['table_forumdescr']}</b></td>
        <td><input name='desc' type='text' size='30' maxlength='200' value='"
.htmlentities($row["description"], ENT_QUOTES)."' /></td>
      </tr>
      <tr>
        <td><b>
{$lang['table_minreadperm']}</b></td>
        <td><select name='readclass'>"
;

    
$maxclass get_user_class();
      for (
$i 0$i <= $maxclass; ++$i)
      if( 
get_user_class_name($i) != "" )
      
$HTMLOUT .= "<option value='$i'" . ($row["minclassread"] == $i " selected='selected'" "") . ">" get_user_class_name($i) . "</option>";

        
$HTMLOUT .= "</select>
        </td>
      </tr>
      <tr>
        <td><b>
{$lang['table_minpostrank']}</b></td>
        <td><select name='writeclass'>"
;

    
$maxclass get_user_class();
      for (
$i 0$i <= $maxclass; ++$i)
      if( 
get_user_class_name($i) != "" )
      
$HTMLOUT .= "<option value='$i'" . ($row["minclasswrite"] == $i " selected='selected'" "") . ">" get_user_class_name($i)."</option>";

        
$HTMLOUT .= "</select></td>
      </tr>
      <tr>
        <td><b>
{$lang['table_mincreatetrank']}</b></td>
        <td><select name='createclass'>"
;

    
$maxclass get_user_class();
      for (
$i 0$i <= $maxclass; ++$i)
      if( 
get_user_class_name($i) != "" )
      
$HTMLOUT .= "<option value='$i'" . ($row["minclasscreate"] == $i " selected='selected'" "") . ">" get_user_class_name($i)."</option>";

        
$HTMLOUT .= "</select></td>
      </tr>
      <tr>
        <td><b>
{$lang['table_forumrank']}</b></td>
        <td><select name='sort'>"
;

    
$res mysql_query ("SELECT sort FROM forums");
    
$nr mysql_num_rows($res);
    
$maxclass $nr 1;
      for (
$i 0$i <= $maxclass; ++$i)
      
$HTMLOUT .= "<option value='$i'" . ($row["sort"] == $i " selected='selected'" "") . ">$i</option>";

        
$HTMLOUT .= "</select>
        </td>
      </tr>

      <tr align='center'>
        <td colspan='2'>
        <input type='hidden' name='id' value='
{$row['id']}' />
        <input type='submit' name='Submit' value='
{$lang['btn_editforum']}' class='btn' />
        </td>
      </tr>
      </table>
    </form>"
;

        }
    } 
    else 
    {
$HTMLOUT .= "{$lang['text_sorry']}";}      

    
// end_frame();
    
$HTMLOUT .= end_main_frame();
    
    print 
stdhead("{$lang['stdhead_editforum']}") . $HTMLOUT stdfoot();
}

function 
takeaddForum() {

    global 
$lang;
    
    if (!
$_POST['name'] && !$_POST['desc']) { header("Location: admin.php?action=forummanage"); die();}

    @
mysql_query("INSERT INTO forums 
    (sort, name,  description,  minclassread,  minclasswrite, minclasscreate) VALUES(" 

    
sqlesc($_POST['sort']) . ", " 
    
sqlesc($_POST['name']). ", " 
    
sqlesc($_POST['desc']). ", " 
    
sqlesc($_POST['readclass']) . ", " 
    
sqlesc($_POST['writeclass']) . ", " 
    
sqlesc($_POST['createclass']) . ")");

    if(
mysql_affected_rows() === 1)
      
stderr("{$lang['stderr_success']}""{$lang['text_added']}. <a href='admin.php?action=forummanage'>{$lang['text_return']}</a>");
    else
      
stderr("{$lang['stderr_success']}""{$lang['text_error']}. <a href='admin.php?action=forummanage'>{$lang['text_return']}</a>");
    die();

}

function 
takeeditForum() {

    global 
$lang;
    
    if (!
$_POST['name'] && !$_POST['desc'] && !$_POST['id']) { header("Location: admin.php?action=forummanage"); die();}

    @
mysql_query("UPDATE forums SET sort = " 
    
sqlesc($_POST['sort']) . ", name = " 
    
sqlesc($_POST['name']). ", description = " 
    
sqlesc($_POST['desc']). ", minclassread = " 
    
sqlesc($_POST['readclass']) . ", minclasswrite = " 
    
sqlesc($_POST['writeclass']) . ", minclasscreate = " 
    
sqlesc($_POST['createclass']) . " where id = ".
    
sqlesc($_POST['id']));

    if(
mysql_affected_rows() == 1)
      
stderr("{$lang['stderr_success']}""{$lang['text_edited']}. <a href='admin.php?action=forummanage'>{$lang['text_return']}</a>");
    else
      
stderr("{$lang['stderr_error']}""{$lang['text_error']}. <a href='admin.php?action=forummanage'>{$lang['text_return']}</a>");
    die();
}

function 
deleteForum() {

    global 
$lang;
    
    
$id = isset($_GET['id']) ? (int)$_GET['id'] : stderr("{$lang['stderr_error']}""{$lang['text_noid']}");


    
$res = @mysql_query("SELECT id FROM topics WHERE forumid=$id");

    if (
mysql_num_rows($res) >= 1
    {
      print 
stdhead() . forum_select($id) . stdfoot();
      exit();
    }
    else
    {
      
$link =  "{$lang['text_warning']}<a href='admin.php?action=forummanage&amp;mode=takedelete&amp;id=$id'>{$lang['text_warning_cont']}</a>";
      
stderr("{$lang['stderr_error']}"$link);
}

}


function 
takedeleteForum() {

    global 
$lang;
    
    
$id = isset($_GET['id']) ? (int)$_GET['id'] : stderr("{$lang['stderr_error']}""{$lang['text_noid']}");

    if(!isset(
$_POST['deleteall'])) 
    {
      
$res = @mysql_query("SELECT id FROM topics WHERE forumid=$id");
      
      if (
mysql_num_rows($res) == 0
        @
mysql_query("DELETE FROM forums WHERE id=$id");
      
      (
mysql_affected_rows() > 0) ? 
    
stderr("{$lang['stderr_success']}""{$lang['text_forumdeleted']} <a href='admin.php?action=forummanage'>{$lang['text_deleted_text']}</a>" ) : stderr("{$lang['stderr_error']}""{$lang['text_nowheretomove']}");
    }
    else
    {
      
$forumid = (isset($_POST['forumid']) && ctype_digit($_POST['forumid'])) ? (int)$_POST['forumid'] : stderr("{$lang['stderr_error']}""{$lang['text_smthbad']}");
      
      
$res = @mysql_query("SELECT id FROM topics WHERE forumid=$id");
      
      if (
mysql_num_rows($res) == 0
        
stderr("{$lang['stderr_error']}""{$lang['text_notopic']}");
      while(
$row mysql_fetch_assoc($res)) 
        
$tid[] = $row['id'];
      
      @
mysql_query("UPDATE topics SET forumid=$forumid WHERE id IN (".join(',' $tid).")");
      
      if(
mysql_affected_rows() > 0)
      
        @
mysql_query("DELETE FROM forums WHERE id=$id");
        
      (
mysql_affected_rows() > 0) ? 
    
stderr("{$lang['stderr_success']}""{$lang['text_forumdeleted']}") : stderr("{$lang['stderr_error']}""{$lang['text_smthbad']}");
        
      
    }

}




function 
forum_select($currentforum 0) {

    global 
$lang;
    
    
$HTMLOUT '';
    
    
$HTMLOUT .= "<p align='center'><form method='post' action='admin.php?action=forummanage&amp;mode=takedelete&amp;id=$currentforum' name='jump'>

    <input type='hidden' name='deleteall' value='true' />

    
{$lang['text_select']}

    <select name='forumid'>"
;

    
$res mysql_query("SELECT * FROM forums ORDER BY name") or sqlerr(__FILE____LINE__);

    while (
$arr mysql_fetch_assoc($res))
    {
      if (
$arr["id"] == $currentforum)
    continue;
        
$HTMLOUT .= "<option value='" $arr["id"] . ($currentforum == $arr["id"] ? "' selected='selected'>" "'>") . $arr["name"] . "</option>\n";
    }

    
$HTMLOUT .= "</select>

    <input type='submit' value='
{$lang['btn_moveto']}' class='btn' />

    </form>\n</p>"
;
    
    return 
$HTMLOUT;
}

?>



theilya2

Hello
i trying to edit my forums and i have no access i am calass level 6
and when i trying to get insite i get message "access denied"

forummanage.php

<?php
/*
+------------------------------------------------
|   TBDev.net BitTorrent Tracker PHP
|   =============================================
|   by CoLdFuSiOn
|   (c) 2003 - 2009 TBDev.Net
|   http://www.tbdev.net
|   =============================================
|   svn: http://sourceforge.net/projects/tbdevnet/
|   Licence Info: GPL
+------------------------------------------------
|   $Date$
|   $Revision$
|   $Author$
|   $URL$
+------------------------------------------------
*/

if ( ! defined'IN_TBDEV_ADMIN' ) )
{
print "<h1>Incorrect access</h1>You cannot access this file directly.";
exit();
}

require_once 
"include/html_functions.php";
require_once 
"include/user_functions.php";



    
$lang array_merge$langload_language('ad_forummanage') );
    
    if( (
get_user_class() < UC_ADMINISTRATOR) || ($CURUSER['id'] !== '0')) //sysop id check
    
stderr("{$lang['stderr_error']}""{$lang['text_permission']}");

    
$mode = isset($_GET['mode']) ? $_GET['mode'] : ''//if not goto default!


    
switch($mode) {
case 'edit'
editForum();
break;

case 'takeedit':
takeeditForum();
break;

case 'delete':
deleteForum();
break;

case 'takedelete':
takedeleteForum();
break;

case 'add':
addForum();
break;

case 'takeadd':
takeaddForum();
break;

default:
showForums();

}



function 
showForums() {

    global 
$lang;
    
    
$HTMLOUT '';
    
$HTMLOUT .= "<span class='btn'><a href='admin.php?action=forummanage&amp;mode=add'>{$lang['btn_addnew']}</a></span><br /><br />";
    
$HTMLOUT .= begin_main_frame();
    
$HTMLOUT .= "<table width='700' border='0' align='center' cellpadding='2' cellspacing='0'>";
    
$HTMLOUT .= "<tr><td class='colhead' align='left'>{$lang['header_name']}</td><td class='colhead'>{$lang['header_topics']}</td><td class='colhead'>{$lang['header_posts']}</td><td class='colhead'>{$lang['header_read']}</td><td class='colhead'>{$lang['header_write']}</td><td class='colhead'>{$lang['header_createtopic']}</td><td class='colhead'>{$lang['header_modify']}</td></tr>";
    
$result mysql_query ("SELECT  * FROM forums ORDER BY sort ASC");
    if ( 
mysql_num_rows($result) > 0) {

      while(
$row mysql_fetch_assoc($result)){

      
$HTMLOUT .= "<tr><td><a href='forums.php?action=viewforum&amp;forumid={$row["id"]}'><b>".htmlentities($row["name"], ENT_QUOTES)."</b></a><br />".htmlentities($row["description"], ENT_QUOTES)."</td>";
      
$HTMLOUT .= "<td>{$row["topiccount"]}</td><td>{$row["postcount"]}</td><td>{$lang['text_minimal']} " get_user_class_name($row["minclassread"]) . "</td><td>{$lang['text_minimal']} " get_user_class_name($row["minclasswrite"]) . "</td><td>{$lang['text_minimal']} " get_user_class_name($row["minclasscreate"]) . "</td><td align='center' style='white-space: nowrap;'><b><a href='admin.php?action=forummanage&amp;mode=edit&amp;id={$row["id"]}'>{$lang['text_edit']}</a>&nbsp;|&nbsp;<a href='admin.php?action=forummanage&amp;mode=delete&amp;id={$row["id"]}'><font color='red'>{$lang['text_delete']}</font></a></b></td></tr>"
          
    } 
    } 
    else 
    {
$HTMLOUT .= "<tr><td colspan='7'>{$lang['text_sorry']}</td></tr>";}       
    
$HTMLOUT .= "</table>";

    
$HTMLOUT .= end_main_frame();
    
    print 
stdhead("{$lang['stdhead_forummanagetools']}") . $HTMLOUT stdfoot();
}

function 
addForum() {
    global 
$CURUSER$lang;

    
    
$HTMLOUT '';
    
$HTMLOUT .= "<span class='btn'><a href='admin.php?action=forummanage'>{$lang['btn_cancel']}</a></span><br /><br />";
    
$HTMLOUT .= begin_main_frame();


    
$HTMLOUT .= "<form method='post' action='admin.php?action=forummanage&amp;mode=takeadd'>
    <table width='600'  border='0' cellspacing='0' cellpadding='3' align='center'>
      <tr align='center'>
        <td colspan='2' class='colhead'>
{$lang['header_makenew']}</td>
      </tr>
      <tr>
        <td><b>
{$lang['table_forumname']}</b></td>
        <td><input name='name' type='text' size='20' maxlength='60' /></td>
      </tr>
      <tr>
        <td><b>
{$lang['table_forumdescr']}</b></td>
        <td><input name='desc' type='text' size='30' maxlength='200' /></td>
      </tr>
      <tr>
        <td><b>
{$lang['table_minreadperm']}</b></td>
        <td><select name='readclass'>"
;

    
$maxclass get_user_class();
      for (
$i 0$i <= $maxclass; ++$i)
      
$HTMLOUT .= "<option value='$i'" . ($CURUSER["class"] == $i " selected='selected'" "") . ">" get_user_class_name($i) . "</option>\n";

        
$HTMLOUT .= "</select>
        </td>
      </tr>
      <tr>
        <td><b>
{$lang['table_minwriteperm']}</b></td>
        <td><select name='writeclass'>"
;

    
$maxclass get_user_class();
      for (
$i 0$i <= $maxclass; ++$i)
      
$HTMLOUT .= "<option value='$i'" . ($CURUSER["class"] == $i " selected='selected'" "") . ">" get_user_class_name($i) . "</option>\n";

        
$HTMLOUT .= "</select></td>
      </tr>
      <tr>
        <td><b>
{$lang['table_mincreatetperm']}</b></td>
        <td><select name='createclass'>"
;

    
$maxclass get_user_class();
      for (
$i 0$i <= $maxclass; ++$i)
      
$HTMLOUT .= "<option value='$i'" . ($CURUSER["class"] == $i " selected='selected'" "") . ">" get_user_class_name($i) . "</option>\n";

        
$HTMLOUT .= "</select></td>
      </tr>
      <tr>
        <td><b>
{$lang['table_forumrank']}</b></td>
        <td><select name='sort'>"
;

    
$res mysql_query ("SELECT sort FROM forums");
    
$nr mysql_num_rows($res);
    
$maxclass $nr 1;
      for (
$i 0$i <= $maxclass; ++$i)
      
$HTMLOUT .= "<option value='$i'>$i </option>\n";

        
$HTMLOUT .= "</select>
     
        </td>
      </tr>

      <tr align='center'>
        <td colspan='2'>
        <!--<input type='hidden' name='action' value='takeadd' /> -->
        <input type='submit' name='Submit' value='
{$lang['btn_makeforum']}' class='btn' /></td>
      </tr>
      </table>
            </form>"
;

    
// end_frame();
    
$HTMLOUT .= end_main_frame();
   
    print 
stdhead("{$lang['stdhead_addforum']}") . $HTMLOUT stdfoot();

}

function 
editForum() {

    global 
$lang;
    
    
$id = isset($_GET["id"]) ? (int)$_GET["id"] : stderr("Error""Not Found");

    
$HTMLOUT '';
    
$HTMLOUT .= "<span class='btn'><a href='admin.php?action=forummanage'>{$lang['btn_cancel']}</a></span><br /><br />";

    
$HTMLOUT .= begin_frame("{$lang['frame_editforum']}");
    
    
$result mysql_query ("SELECT * FROM forums where id = '$id'");
    if (
mysql_num_rows($result) > 0) {
      while(
$row mysql_fetch_assoc($result)){


      
$HTMLOUT .= "<form method='post' action='admin.php?action=forummanage&amp;mode=takeedit'>
      <table width='600'  border='0' cellspacing='0' cellpadding='3' align='center'>
      <tr align='center'>
        <td colspan='2' class='colhead'>
{$lang['header_editforum']} ".htmlentities($row["name"], ENT_QUOTES)."</td>
      </tr>
      <tr>
        <td><b>
{$lang['table_forumname']}</b></td>
        <td><input name='name' type='text' size='30' maxlength='60' value='"
.htmlentities($row["name"], ENT_QUOTES)."' /></td>
      </tr>
      <tr>
        <td><b>
{$lang['table_forumdescr']}</b></td>
        <td><input name='desc' type='text' size='30' maxlength='200' value='"
.htmlentities($row["description"], ENT_QUOTES)."' /></td>
      </tr>
      <tr>
        <td><b>
{$lang['table_minreadperm']}</b></td>
        <td><select name='readclass'>"
;

    
$maxclass get_user_class();
      for (
$i 0$i <= $maxclass; ++$i)
      if( 
get_user_class_name($i) != "" )
      
$HTMLOUT .= "<option value='$i'" . ($row["minclassread"] == $i " selected='selected'" "") . ">" get_user_class_name($i) . "</option>";

        
$HTMLOUT .= "</select>
        </td>
      </tr>
      <tr>
        <td><b>
{$lang['table_minpostrank']}</b></td>
        <td><select name='writeclass'>"
;

    
$maxclass get_user_class();
      for (
$i 0$i <= $maxclass; ++$i)
      if( 
get_user_class_name($i) != "" )
      
$HTMLOUT .= "<option value='$i'" . ($row["minclasswrite"] == $i " selected='selected'" "") . ">" get_user_class_name($i)."</option>";

        
$HTMLOUT .= "</select></td>
      </tr>
      <tr>
        <td><b>
{$lang['table_mincreatetrank']}</b></td>
        <td><select name='createclass'>"
;

    
$maxclass get_user_class();
      for (
$i 0$i <= $maxclass; ++$i)
      if( 
get_user_class_name($i) != "" )
      
$HTMLOUT .= "<option value='$i'" . ($row["minclasscreate"] == $i " selected='selected'" "") . ">" get_user_class_name($i)."</option>";

        
$HTMLOUT .= "</select></td>
      </tr>
      <tr>
        <td><b>
{$lang['table_forumrank']}</b></td>
        <td><select name='sort'>"
;

    
$res mysql_query ("SELECT sort FROM forums");
    
$nr mysql_num_rows($res);
    
$maxclass $nr 1;
      for (
$i 0$i <= $maxclass; ++$i)
      
$HTMLOUT .= "<option value='$i'" . ($row["sort"] == $i " selected='selected'" "") . ">$i</option>";

        
$HTMLOUT .= "</select>
        </td>
      </tr>

      <tr align='center'>
        <td colspan='2'>
        <input type='hidden' name='id' value='
{$row['id']}' />
        <input type='submit' name='Submit' value='
{$lang['btn_editforum']}' class='btn' />
        </td>
      </tr>
      </table>
    </form>"
;

        }
    } 
    else 
    {
$HTMLOUT .= "{$lang['text_sorry']}";}      

    
// end_frame();
    
$HTMLOUT .= end_main_frame();
    
    print 
stdhead("{$lang['stdhead_editforum']}") . $HTMLOUT stdfoot();
}

function 
takeaddForum() {

    global 
$lang;
    
    if (!
$_POST['name'] && !$_POST['desc']) { header("Location: admin.php?action=forummanage"); die();}

    @
mysql_query("INSERT INTO forums 
    (sort, name,  description,  minclassread,  minclasswrite, minclasscreate) VALUES(" 

    
sqlesc($_POST['sort']) . ", " 
    
sqlesc($_POST['name']). ", " 
    
sqlesc($_POST['desc']). ", " 
    
sqlesc($_POST['readclass']) . ", " 
    
sqlesc($_POST['writeclass']) . ", " 
    
sqlesc($_POST['createclass']) . ")");

    if(
mysql_affected_rows() === 1)
      
stderr("{$lang['stderr_success']}""{$lang['text_added']}. <a href='admin.php?action=forummanage'>{$lang['text_return']}</a>");
    else
      
stderr("{$lang['stderr_success']}""{$lang['text_error']}. <a href='admin.php?action=forummanage'>{$lang['text_return']}</a>");
    die();

}

function 
takeeditForum() {

    global 
$lang;
    
    if (!
$_POST['name'] && !$_POST['desc'] && !$_POST['id']) { header("Location: admin.php?action=forummanage"); die();}

    @
mysql_query("UPDATE forums SET sort = " 
    
sqlesc($_POST['sort']) . ", name = " 
    
sqlesc($_POST['name']). ", description = " 
    
sqlesc($_POST['desc']). ", minclassread = " 
    
sqlesc($_POST['readclass']) . ", minclasswrite = " 
    
sqlesc($_POST['writeclass']) . ", minclasscreate = " 
    
sqlesc($_POST['createclass']) . " where id = ".
    
sqlesc($_POST['id']));

    if(
mysql_affected_rows() == 1)
      
stderr("{$lang['stderr_success']}""{$lang['text_edited']}. <a href='admin.php?action=forummanage'>{$lang['text_return']}</a>");
    else
      
stderr("{$lang['stderr_error']}""{$lang['text_error']}. <a href='admin.php?action=forummanage'>{$lang['text_return']}</a>");
    die();
}

function 
deleteForum() {

    global 
$lang;
    
    
$id = isset($_GET['id']) ? (int)$_GET['id'] : stderr("{$lang['stderr_error']}""{$lang['text_noid']}");


    
$res = @mysql_query("SELECT id FROM topics WHERE forumid=$id");

    if (
mysql_num_rows($res) >= 1
    {
      print 
stdhead() . forum_select($id) . stdfoot();
      exit();
    }
    else
    {
      
$link =  "{$lang['text_warning']}<a href='admin.php?action=forummanage&amp;mode=takedelete&amp;id=$id'>{$lang['text_warning_cont']}</a>";
      
stderr("{$lang['stderr_error']}"$link);
}

}


function 
takedeleteForum() {

    global 
$lang;
    
    
$id = isset($_GET['id']) ? (int)$_GET['id'] : stderr("{$lang['stderr_error']}""{$lang['text_noid']}");

    if(!isset(
$_POST['deleteall'])) 
    {
      
$res = @mysql_query("SELECT id FROM topics WHERE forumid=$id");
      
      if (
mysql_num_rows($res) == 0
        @
mysql_query("DELETE FROM forums WHERE id=$id");
      
      (
mysql_affected_rows() > 0) ? 
    
stderr("{$lang['stderr_success']}""{$lang['text_forumdeleted']} <a href='admin.php?action=forummanage'>{$lang['text_deleted_text']}</a>" ) : stderr("{$lang['stderr_error']}""{$lang['text_nowheretomove']}");
    }
    else
    {
      
$forumid = (isset($_POST['forumid']) && ctype_digit($_POST['forumid'])) ? (int)$_POST['forumid'] : stderr("{$lang['stderr_error']}""{$lang['text_smthbad']}");
      
      
$res = @mysql_query("SELECT id FROM topics WHERE forumid=$id");
      
      if (
mysql_num_rows($res) == 0
        
stderr("{$lang['stderr_error']}""{$lang['text_notopic']}");
      while(
$row mysql_fetch_assoc($res)) 
        
$tid[] = $row['id'];
      
      @
mysql_query("UPDATE topics SET forumid=$forumid WHERE id IN (".join(',' $tid).")");
      
      if(
mysql_affected_rows() > 0)
      
        @
mysql_query("DELETE FROM forums WHERE id=$id");
        
      (
mysql_affected_rows() > 0) ? 
    
stderr("{$lang['stderr_success']}""{$lang['text_forumdeleted']}") : stderr("{$lang['stderr_error']}""{$lang['text_smthbad']}");
        
      
    }

}




function 
forum_select($currentforum 0) {

    global 
$lang;
    
    
$HTMLOUT '';
    
    
$HTMLOUT .= "<p align='center'><form method='post' action='admin.php?action=forummanage&amp;mode=takedelete&amp;id=$currentforum' name='jump'>

    <input type='hidden' name='deleteall' value='true' />

    
{$lang['text_select']}

    <select name='forumid'>"
;

    
$res mysql_query("SELECT * FROM forums ORDER BY name") or sqlerr(__FILE____LINE__);

    while (
$arr mysql_fetch_assoc($res))
    {
      if (
$arr["id"] == $currentforum)
    continue;
        
$HTMLOUT .= "<option value='" $arr["id"] . ($currentforum == $arr["id"] ? "' selected='selected'>" "'>") . $arr["name"] . "</option>\n";
    }

    
$HTMLOUT .= "</select>

    <input type='submit' value='
{$lang['btn_moveto']}' class='btn' />

    </form>\n</p>"
;
    
    return 
$HTMLOUT;
}

?>