First of all, you should specify a default action:
PHP Code:
if (!$_REQUEST['do']) {
$_REQUEST['do'] = 'update';
}
Furtheremore, vB3 (this is for Vb3, right?) does always use do= for actions, so you should also use this:
PHP Code:
if ($_REQUEST['do'] == "update")
{
Then, if this hack is not just for yourself but for release you should keep in mind ppl using table prefixes:
PHP Code:
$excludedforums=$DB_site->query_first("SELECT excludedforums FROM" . TABLE_PREFIX . "topx_admin WHERE topx_adminid = '1'");
You must also use the same column name as in your table when you use print_input_row:
PHP Code:
print_input_row("Forums to exclude", 'exclude_forums', $excludedforums['excludedforums']);
As already stated above, you must always quote strings from a form or URL, as otherwise this will be a high security risk:
PHP Code:
$DB_site->query("UPDATE " . TABLE_PREFIX . "topx_admin SET excludedforums='" . addslashes($_POST['exclude_forums']) . "' WHERE topx_adminid = '1'");
PHP Code:
define('CP_REDIRECT', 'topxadmin.php?do=update');
Once again, you should use do= here.
As a last thing, your script is missing print_cp_footer();
Here is the whole script (topxadmin.php in admincp directory):
PHP Code:
<?php
// ######################### ERROR REPORTING #############################
error_reporting(E_ALL & ~E_NOTICE);
// #################### DEFINE IMPORTANT CONSTANTS #######################
define('NO_REGISTER_GLOBALS', 1);
define('GET_EDIT_TEMPLATES', true);
define('THIS_SCRIPT', 'topxadmin');
require_once('./global.php');
require_once('./includes/functions_misc.php');
print_cp_header('Top X Admin');
if (!$_REQUEST['do']) {
$_REQUEST['do'] = 'update';
}
// ###################### Edit Settings ########################
if ($_REQUEST['do'] == "update")
{
$excludedforums = $DB_site->query_first("SELECT excludedforums FROM " . TABLE_PREFIX . "topx_admin WHERE topx_adminid = '1'");
print_form_header('topxadmin', 'do_update_topxsetting');
print_table_header("Top X Settings");
print_input_row("Forums to exclude", 'exclude_forums', $excludedforums['excludedforums']);
print_submit_row("Update Top X Settings", 0);
}
if ($_POST['do'] == "do_update_topxsetting")
{
$DB_site->query("UPDATE " . TABLE_PREFIX . "topx_admin SET excludedforums='" . addslashes($_POST['exclude_forums']) . "' WHERE topx_adminid = '1'");
define('CP_REDIRECT', 'topxadmin.php?do=update');
print_stop_message('excluded_forums_updated');
}
print_cp_footer();
?>
This does work for me, given your table looks like that:
[sql]
CREATE TABLE `topx_admin` (
`topx_adminid` int(10) unsigned NOT NULL auto_increment,
`excludedforums` varchar(255) NOT NULL default '',
PRIMARY KEY (`topx_adminid`)
) TYPE=MyISAM AUTO_INCREMENT;
[/sql]