Здравствуйте помогите разобраться откуда ноги растут у данной ошибки Код (Text): PHP Notice: Undefined variable: CONFIG in /home/user/web/exemple.com/public_html/public.inc.php on line 3, referer: http://exemple.com/adm_settings.php Ошибка происходить после нажатия на кнопку сохранить настройки в панели администратора именно настройки сайт становится полностью не видимый. Делаю SQL запрос к таблицы settings закидываю стандартные настройки сайт снова работает "До нажатия кнопки" сравнил дампы не чего не увидел кроме того что таблицы поменялись местами. public.inc.php Код (Text): # <?php ini_set('error_reporting', E_ALL); #3 if ( !$CONFIG ) { require( "include/config.inc.php" ); } if ( !$dbconn ) { $dbconn = db_open( ); } if ( $NoTemp ) { require_once( $CONFIG['SKIN_FOLDER']."inc.head.php" ); require_once( $CONFIG['SKIN_FOLDER']."inc.menu.top.php" ); } if ( $_GET['Action'] == "logout" ) { db_exec( "UPDATE {$_users} SET session_id='', language='{$_SESSION['language']}' WHERE session_id='{$sid}' and uid='{$_SESSION['uid']}'" ); make_session_unregister( ); header( "Location: ".$CONFIG['SITE_URL'] ); } if ( $_POST['submit_login'] && !session_active( ) ) { include( "include/user_login_check.php" ); } if ( isset( $_GET['inccur'] ) ) { $str_tool = new string_tool( ); $inccur = $str_tool->remove_dangerous_chars( trim( $_GET['inccur'] ) ); $arr_INCLUDE_CURRENCIES = explode( ",", $inccur ); $i = 0; foreach ( $arr_INCLUDE_CURRENCIES as $key => $value ) { if ( db_get_id( "SELECT cid FROM {$_currencies} WHERE {$_currencies}.currency_name='{$value}'" ) ) { $currencies_names .= "'{$value}', "; $currencies_names_title .= ucfirst( $value ).", "; } } if ( $currencies_names ) { $currencies_names = substr( $currencies_names, 0, strlen( $currencies_names ) - 2 ); $LANG_msg .= "exchange_004"; $currencies_clause = " AND currency_name in (".$currencies_names.") "; } } else if ( $CONFIG['EXCLUDE_CURRENCIES'] ) { $arr_EXCLUDE_CURRENCIES = explode( ",", $CONFIG['EXCLUDE_CURRENCIES'] ); foreach ( $arr_EXCLUDE_CURRENCIES as $key => $value ) { $currencies_clause .= " AND {$_currencies}.currency_name<>'{$value}' "; } } $arr_currency = array( ); $query_currency = "Select {$_exchange_rate}.cid, currency_name, reserve_amount, currency_worth_name, currency_metal_name, ACCOUNT From {$_exchange_rate} Inner Join {$_currencies} ON {$_exchange_rate}.cid = {$_currencies}.cid\r\n\t\t\tWhere {$_currencies}.exchange_status = '1' {$currencies_clause} Order By {$_currencies}.cid Asc"; $result = db_query( $query_currency, " " ); $arr_Reserve = mysql_push_data( $result ); db_free_result( $result ); foreach ( $arr_Reserve as $key => $value ) { $currencies_FNAME[$arr_Reserve[$key]['cid']] = ucfirst( $arr_Reserve[$key]['currency_name'] )." ".ucfirst( $arr_Reserve[$key]['currency_metal_name'] ); } $query_currencies = "Select cid, currency_name, currency_worth_name, currency_metal_name From {$_currencies} Order By {$_currencies}.cid Asc"; $result = db_query( $query_currencies, " " ); $arr_result = mysql_push_data( $result ); foreach ( $arr_result as $key => $value ) { $Allcurrencies[$arr_result[$key]['cid']] = ucfirst( $arr_result[$key]['currency_name'] )." ".ucfirst( $arr_result[$key]['currency_metal_name'] ); } db_free_result( $result ); unset( $arr_result ); if ( $CONFIG['NEWS_NUMBER'] ) { if ( !$CONFIG ) { require( "include/config.inc.php" ); } $nclause = "fld_language='{$CONFIG['DEF_LANGUAGE']}'"; if ( db_get_id( "SELECT id FROM {$_news} WHERE type='1' AND status='1' AND fld_language='{$language}' AND fld_title<>''" ) ) { $nclause = "fld_language='{$language}'"; } $query_news = "SELECT id, fld_title, fld_body, fld_date FROM {$_news} WHERE type = '1' AND status = '1' AND {$nclause} ORDER BY fld_date DESC LIMIT 0, {$CONFIG['NEWS_NUMBER']}"; $result = db_query( $query_news, " " ); $arr_data_news_list = mysql_push_data( $result ); db_free_result( $result ); foreach ( $arr_data_news_list as $key => $value ) { $arr_data_news_list[$key]['body_lenght'] = strlen( $arr_data_news_list[$key]['fld_body'] ); } } ?> config.inc.php Код (Text): <?php ini_set( "magic_quotes_gpc", "Off" ); ini_set( "magic_quotes_runtime", "Off" ); ini_set( "output_buffering", "0" ); ini_set( "register_globals", "0" ); if ( @( ini_get( "zlib.output_compression" ) && ini_get( "zlib.output_compression_level" ) != 5 ) ) { @ini_set( "zlib.output_compression_level", "5" ); ob_start( ); } else if ( strstr( $_SERVER['HTTP_ACCEPT_ENCODING'], "gzip" ) ) { ob_start( "ob_gzhandler" ); } else { ob_start( ); } if ( !file_exists( "include/config.inc.php" ) ) { chdir( dirname( __FILE__ )."/.." ); } if ( !file_exists( "configuration.php" ) ) { exit( "Rename <b>configuration.php_rename</b> in root to <b>configuration.php</b>" ); } if ( !file_exists( "include/config.inc.php" ) || !file_exists( "include/vars.inc.php" ) ) { exit( "Please upload all package files." ); } else { require_once( "configuration.php" ); } if ( !$hostname || !$database || !$db_login ) { exit( "Seems you are using for first time, Please <a href='install/index.php'>click here</a> to <b>start installation</b> process." ); } if ( file_exists( "-Reserved-files" ) ) { error_reporting( E_ALL ^ E_NOTICE ); } else { $uploaded = TRUE; } if ( !file_exists( "_ERRORS_PHPSYSTEM.html" ) ) { ini_set( "display_errors", "on" ); error_reporting( 1 ); } if ( file_exists( "_ERRORS_LOGING.html" ) ) { @set_error_handler( "log_handler" ); } if ( file_exists( "_ERRORS_SKIN.html" ) ) { $debug_skin = TRUE; } if ( $_SERVER['HTTP_HOST'] == "demo.ru" && !file_exists( "SYSTEM_PHERRORS_.html" ) ) { $demo_mode = FALSE; } if ( isset( $_SERVER['HTTP_HOST'] ) ) { $domain = ".".preg_replace( "`^www.`", "", $_SERVER['HTTP_HOST'] ); if ( 2 < count( explode( ".", $domain ) ) ) { ini_set( "session.cookie_domain", $domain ); } } session_start( ); $_lines = $db_prefix."balance_lines"; $_referals = $db_prefix."referals"; $_users = $db_prefix."users"; $_users_details = $db_prefix."users_details"; $_news = $db_prefix."news"; $_countries = $db_prefix."countries"; $_logs = $db_prefix."users_logs"; $_currencies = $db_prefix."currency"; $_exchange_rate = $db_prefix."exchange_rate"; $_exchange_lines = $db_prefix."exchange_lines"; $_settings = $db_prefix."settings"; $_orders = $db_prefix."order_lines"; require_once( "include/vars.inc.php" ); require_once( "include/function.fmt.inc.php" ); require_once( "include/function.db.inc.php" ); if ( !$dbconn ) { $dbconn = db_open( ); } $query = "SELECT * FROM {$_settings}"; $result = db_query( $query, " " ); while ( $line = db_fetch_array( $result ) ) { $setting = $line['setting']; $value = $line['value']; $CONFIG["".$setting] = "".$value; } db_free_result( $result ); unset( $query ); require_once( "include/function.fmt.pte.inc.php" ); require_once( "include/function.link.inc.php" ); require_once( "include/class.stringtool.php" ); require_once( "include/function.session.inc.php" ); require_once( "include/function.currency.inc.php" ); require_once( "include/class.pager.php" ); require_once( "include/class.upload.php" ); require_once( "include/function.security.inc.php" ); require_once( "include/function.pte.inc.php" ); require_once( "include/function.exchange.inc.php" ); fncSecurityCheck( ); if ( $_GET['Error'] == "cookie" ) { $Error_div[] = "Your browser must be cookie enabled"; } if ( is_dir( "install" ) && $uploaded ) { $Error_div[] = "You must delete install folder for security reasons."; } if ( !is_writable( "_skins_tmp" ) ) { $Error_div[] = "Change _skins_tmp folder permisssion writable (777)."; } $page = explode( "/", $_SERVER['PHP_SELF'] ); $cur_page = $page[count( $page ) - 1]; $cur_folder = $page[count( $page ) - 2]; if ( session_admin( ) ) { $time_start = microtime_float( ); } if ( empty( $CONFIG['SITE_URL_SECURE'] ) ) { $CONFIG['SITE_URL_SECURE'] = $CONFIG['SITE_URL']; } if ( $_SERVER['SERVER_PORT'] == 443 && $_GET['goto'] != "normalsite" && !empty( $CONFIG['SITE_URL_SECURE'] ) ) { $CONFIG['SITE_URL'] = $CONFIG['SITE_URL_SECURE']; } $DEF_DIR_LANGUAGE = "languages"; if ( !isset( $_GET['lang'] ) && !isset( $_SESSION['language'] ) ) { $language = $CONFIG['DEF_LANGUAGE']; } else if ( $_GET['lang'] ) { $language = $_GET['lang']; $_SESSION['language'] = $language; } else { $language = $_SESSION['language']; } if ( file_exists( $DEF_DIR_LANGUAGE."/{$language}.inc.php" ) ) { require_once( $DEF_DIR_LANGUAGE."/{$language}.inc.php" ); } else { require_once( $DEF_DIR_LANGUAGE."/{$CONFIG['DEF_LANGUAGE']}.inc.php" ); } $lang = get_inc_names( $DEF_DIR_LANGUAGE ); sort( $lang ); if ( $_GET['rid'] ) { db_exec( "update {$_users_details} set click_counter=(click_counter + 1) WHERE uid='{$_GET['rid']}'" ); } $Template_folder = "_skins"; $images = $CONFIG['SITE_URL']."/images"; $CONFIG['SKIN_FOLDER'] = $Template_folder."/".$CONFIG['SITE_TEMPLATE']."/"; $CONFIG['CACHE_FOLDER'] = $Template_folder."_tmp/"; $CONFIG['SKIN_URL'] = $CONFIG['SITE_URL']."/".$CONFIG['SKIN_FOLDER']; $CONFIG['SKIN_JS'] = $CONFIG['SITE_URL']."/".$CONFIG['SKIN_FOLDER']."tpljs"; $CONFIG['SKIN_CSS'] = $CONFIG['SITE_URL']."/".$CONFIG['SKIN_FOLDER']."tplcss"; $CONFIG['SKIN_IMAGES'] = $CONFIG['SITE_URL']."/".$CONFIG['SKIN_FOLDER']."tplimgs"; ?> adm_settings.php Код (Text): <?php require( "public.inc.php" ); if ( !session_admin( ) ) { @header( @"Location: ".$CONFIG['SITE_URL'] ); } $ramz = new RamzNegar( ); if ( $_POST['Action'] == "Save" && $demo_mode ) { $Error_div[] = "You can not change some settings in Demo Version."; } if ( $demo_mode ) { $demo_mode_allowfields = array( "FULL_REGISTRATION", "LOGIN_TURNING", "SUPPORT_TURNING", "SIGNUP_TURNING", "EXCHANGE_REF_COMISSION", "MIN_EXCHANGE_FEE", "gpg_path", "FRIENDLY_URL", "SITE_TEMPLATE", "MAIL_FORMAT", "adminemailnotification", "NEWS_NUMBER", "recordsnumperpage" ); } if ( $_POST['Action'] == "Save" && $_POST['submit'] ) { foreach ( $_POST as $key => $value ) { if ( $key != "submit" && $key != "Action" && $key != "selectedtab" && !empty( $key ) ) { if ( $key == "MAIL_SMTP_PASS" ) { $value = $ramz->encrypt( ramzkey( "number1" ), $value ); } if ( $key == "SITE_TEMPLATE" && $value != $CONFIG['SITE_TEMPLATE'] && !$recache ) { $recache = true; } $SQL = "UPDATE ".$_settings." SET value='".$value."' WHERE setting='".$key."'"; if ( !$demo_mode ) { db_exec( $SQL ); } else if ( $demo_mode && in_array( $key, $demo_mode_allowfields ) ) { db_exec( $SQL ); } } $$fieldname = trim( $value ); } $Success[] = "Site settings updated successfully."; if ( $recache ) { @header( @"Location: ".@get_link( @$cur_page."?recache=true" ) ); } else { empty_cache_folder( ); } } $query = "SELECT * FROM {$_settings}"; $result = db_query( $query, " " ); while ( $line = db_fetch_array( $result ) ) { $key = $line['setting']; $value = $line['value']; $$key = "".$value; } db_free_result( $result ); $templates = list_dirs( $Template_folder ); foreach ( $templates as $key => $value ) { if ( $value != "uploads" ) { if ( file_exists( $Template_folder."/".$value."/tplimgs/"."_preview.jpg" ) ) { $Template_rows .= "<div style=\"float:left; text-align:center; padding:15px;\"><img src=\"".$CONFIG['SITE_URL']."/".$Template_folder."/".$value."/tplimgs/_preview.jpg\" width=\"160\" height=\"124\" alt=\"".ucfirst( $value )."\" /><br>"; } else { $Template_rows .= "<div style=\"float:left; text-align:center; padding:15px;\"><img src=\"".$CONFIG['SKIN_IMAGES']."/ico/no_image.gif\" width=\"160\" height=\"124\" alt=\"".ucfirst( $value )."\" /><br>"; } $Template_rows .= "<input name=\"SITE_TEMPLATE\" type=\"radio\" value=\"".$value."\" class=\"nostyle\" ".( $CONFIG['SITE_TEMPLATE'] == $value ? "checked=\"checked\"" : "" )."/>".ucfirst( $value )."</div>"; } } //echo "\r\n"; if ( $NoTemp ) { require_once( $CONFIG['SKIN_FOLDER']."adm_settings.php" ); } else { require( "include/engine_settings.php" ); $PAGE_TEMPLATE = "adm_settings.html"; $page->assign( "arr_MailFormat", array( "text" => "Text", "html" => "Html" ) ); $page->assign( "arr_RecordsNo", array( "20" => "20", "40" => "40", "50" => "50", "80" => "80", "100" => "100", "200" => "200" ) ); $page->assign( "arr_CHOOSE", array( "1" => "Yes", "0" => "No" ) ); $query = "SELECT * FROM {$_settings}"; $result = db_query( $query, " " ); while ( $line = db_fetch_array( $result ) ) { if ( $line['setting'] == "MAIL_SMTP_PASS" ) { $line['value'] = $ramz->decrypt( ramzkey( "number1" ), $line['value'] ); } $setting = $line['setting']; $page->assign( $setting, $line['value'] ); } db_free_result( $result ); $page->assign( "Template_rows", $Template_rows ); $page->assign( "Post_selectedtab", $_POST['selectedtab'] ); $page->assign( "arr_lang_box", $lang ); require( "include/engine_run.php" ); } ?>
Это не ошибка, а предупреждение. Вы проверяете её на true/false, но т.к. переменной не существует, то и проверять нечего. В таких случаях используйте isset(): Код (PHP): if(!isset($CONFIG)){ // в печали, т.к. переменной нет } else { // идём на пиво, т.к. переменная уже родилась }
Но почему все токи при нажатие исчезать при обновление настроек снова работает. Добавлено спустя 2 минуты 39 секунд: Что то не понятное происходит при сохранение настроек в базе сайт перестает работать. Добавлено спустя 4 минуты 35 секунд: Вот работающие настройки Код (Text): INSERT INTO `settings` (`setting`, `value`, `type`) VALUES ('SITE_URL', 'http://exemple.com', 'char'), ('SITE_URL_SECURE', '', 'char'), ('SITE_NAME', 'changer', 'char'), ('ADMIN_MAIL', 'admin@exemple.com', 'char'), ('REPORT_MAIL', 'noreply@exemple.com', 'char'), ('EXCHANGE_REF_COMISSION', '3', 'integer'), ('MIN_EXCHANGE_FEE', '1.25', 'integer'), ('DEF_LANGUAGE', 'english', 'char'), ('SITE_TEMPLATE', 'brown', 'char'), ('LANGUAGE_MENU', '0', 'enum'), ('NEWS_NUMBER', '4', 'integer'), ('recordsnumperpage', '20', 'integer'), ('caching_status', '0', 'enum'), ('keys_folder', 'hsh_bnk/keys', 'char'), ('EXCLUDE_CURRENCIES', '', 'char'), ('temporary_close', '0', 'enum'), ('FRIENDLY_URL', '0', 'enum'), ('MAIL_FORMAT', 'html', 'char'), ('adminemailnotification', '1', 'enum'), ('adminloginlimitip', '', 'char'), ('secretadminlogin', '', 'char'), ('FULL_REGISTRATION', '0', 'enum'), ('LOGIN_TURNING', '0', 'enum'), ('SUPPORT_TURNING', '0', 'enum'), ('SIGNUP_TURNING', '0', 'enum'), ('tinymce_editor', '1', 'enum'), ('MAIL_TYPE', 'phpmail', 'enum'), ('MAIL_SMTP_PORT', '', 'char'), ('MAIL_SMTP_USER', 'administrator', 'char'), ('MAIL_SMTP_PASS', 'Kt:$o_', 'char'), ('MAIL_SMTP_HOST', '', 'char'), ('REPORT_MAIL_NAME', 'No Reply', 'char'); А вот с этими не работает Код (Text): INSERT INTO `settings` (`setting`, `value`, `type`) VALUES ('MAIL_SMTP_PASS', 'Kt:$o_', 'char'), ('MAIL_SMTP_USER', 'administrator', 'char'), ('REPORT_MAIL_NAME', 'No Reply', 'char'), ('MAIL_SMTP_HOST', '', 'char'), ('MAIL_TYPE', 'phpmail', 'enum'), ('tinymce_editor', '1', 'enum'), ('SIGNUP_TURNING', '0', 'enum'), ('SUPPORT_TURNING', '0', 'enum'), ('LOGIN_TURNING', '0', 'enum'), ('FULL_REGISTRATION', '0', 'enum'), ('secretadminlogin', '', 'char'), ('adminemailnotification', '1', 'enum'), ('adminloginlimitip', '', 'char'), ('MAIL_FORMAT', 'html', 'char'), ('FRIENDLY_URL', '0', 'enum'), ('temporary_close', '0', 'enum'), ('EXCLUDE_CURRENCIES', '', 'char'), ('keys_folder', 'hsh_bnk/keys', 'char'), ('caching_status', '0', 'enum'), ('recordsnumperpage', '20', 'integer'), ('NEWS_NUMBER', '4', 'integer'), ('MAIL_SMTP_PORT', '', 'char'), ('LANGUAGE_MENU', '0', 'enum'), ('SITE_TEMPLATE', 'brown', 'char'), ('DEF_LANGUAGE', '', 'char'), ('MIN_EXCHANGE_FEE', '1.25', 'integer'), ('EXCHANGE_REF_COMISSION', '3', 'integer'), ('REPORT_MAIL', 'noreply@exemple.com', 'char'), ('ADMIN_MAIL', 'admin@exemple.com', 'char'), ('SITE_NAME', 'changer', 'char'), ('SITE_URL_SECURE', '', 'char'), ('SITE_URL', 'http://exemple.com', 'char');
Все очень просто и непросто закинул фалы подключил базу в базу дамп все работает вошел в админку полазил по разделам зашел в раздел настройки сайта изменил название сохранил и все сайт невиден и логи пусты.
Думаю проблема здесь Код (Text): if ( !session_admin( ) ) { @header( @"Location: ".$CONFIG['SITE_URL'] ); } $ramz = new RamzNegar( ); if ( $_POST['Action'] == "Save" && $_POST['submit'] ) { foreach ( $_POST as $key => $value ) { if ( $key != "submit" && $key != "Action" && $key != "selectedtab" && !empty( $key ) ) { if ( $key == "MAIL_SMTP_PASS" ) { $value = $ramz->encrypt( ramzkey( "" ), $value ); } if ( $key == "SITE_TEMPLATE" && $value != $CONFIG['SITE_TEMPLATE'] && !$recache ) { $recache = true; } $SQL = "UPDATE ".$_settings." SET value='".$value."' WHERE setting='".$key."'"; if ( !$demo_mode ) { db_exec( $SQL ); } else if ( $demo_mode && in_array( $key, $demo_mode_allowfields ) ) { db_exec( $SQL ); } } $$fieldname = trim( $value ); } $Success[] = "Site settings updated successfully."; if ( $recache ) { @header( @"Location: ".@get_link( @$cur_page."?recache=true" ) ); } else { empty_cache_folder( ); } }
Для начала, уберите всех "собак" из кода и никогда не используйте подавление ошибок во время отладки... да и вообще. Возможно, что вас удивит количество предупреждений или ошибок.
Примерно так Код (Text): if (!session_admin ()) { @header ('Location: ' . $CONFIG['SITE_URL']); } if (($_POST['Action'] == 'Save' AND $_POST['submit'])) { foreach ($_POST as $key => $value) { if ((($key != 'submit' AND $key != 'Action') AND $key != 'selectedtab') AND !isset ('key')) { if ((($key == 'SITE_TEMPLATE' AND $value != $CONFIG['SITE_TEMPLATE']) AND !$recache)) { $recache = true; } $SQL = 'UPDATE ' . $_settings . ' SET value=\'' . $value . '\' WHERE setting=\'' . $key . '\''; } $$fieldname = trim ($value); } $Success[] = 'Site settings updated successfully.'; if ($recache) { @header ('Location: ' . @get_link ($cur_page . '?recache=true')); } else { if ((!$Error AND $CONFIG['caching_status'])) { empty_cache_folder (); } } } Теперь такая ошибка Код (Text): syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/user/web/exemple.com/public_html/adm_settings.php on line 14