Запускаешь видишь ошибку.... Пытаешься понять почему она.... Или косяк в синтексисе или логика поломалась...
Другой подход Код скрипта следующий: Code: <?php function ShowModSetupPage( $tpl_f = "" ) { global $O_HW; global $err_msg; global $MOD_CFG; $A_CFG = array( ); include( SITE_PATH."modules/".HW_MOD."/hw_info.php" ); if ( $A_CFG ) { $a_v = $O_HW->GetModOptions( HW_MOD ); if ( is_array( $a_v ) ) { foreach ( array_keys( $a_v ) as $k ) { if ( !isset( $A_CFG[$k] ) ) { unset( $a_v[$k] ); } } if ( $a_v ) { $A_CFG = array_merge( $A_CFG, $a_v ); } unset( $a_v ); } } if ( $_POST['go'] ) { if ( $A_CFG ) { foreach ( array_keys( $A_CFG ) as $k ) { if ( !isset( $_POST[$k] ) && substr( $k, 0, 3 ) != "EN_" ) { continue; } $A_CFG[$k] = $_POST[$k]; } } $func = HW_MOD."_SetupValidate"; if ( function_exists( $func ) ) { $err_msg = $func( ); } if ( !$err_msg ) { $func = HW_MOD."_SetupOnSave"; if ( function_exists( $func ) ) { $func( $A_CFG ); } $O_HW->SetModOptions( HW_MOD, $A_CFG ); $MOD_CFG = $O_HW->GetModOptions( HW_MOD ); $err_msg = hwlng( "updated_ok" ); } } $z = array( ); if ( $A_CFG ) { foreach ( $A_CFG as $k => $v ) { if ( substr( $k, 0, 3 ) == "EN_" ) { $z[$k] = $v ? "checked" : ""; } else { $z[$k] = $v; } } } $func = HW_MOD."_SetupPrepare"; if ( function_exists( $func ) ) { $func( $z ); } if ( !$tpl_f ) { $tpl_f = HW_MOD_TPL."setup.htm"; } return evaladvtpl( $tpl_f, $z ); } function hwGetModuleDescr( $mod ) { global $db; list( $state, $descr ) = $db->one_row( "SELECT state,descr FROM ".TBL_MODULES." WHERE dir=".$db->esc( $mod )." AND admin_capable=\"1\"" ); if ( $state != "A" && $state != "I" ) { showadmheader( ); echo "Module is not available"; showadmfooter( ); exit( ); } return $descr; } define( "HTTP_HOST", $_SERVER['HTTP_HOST'] ); define( "ADMIN_AREA", 1 ); require( "../inc/application.php" ); if ( basename( __FILE__ ) != "modules.php" ) { exit( "Access Denied" ); } $mod = $_POST['mod'] ? $_POST['mod'] : $_GET['mod']; $mod = ( boolean )$mod; $a_mods = hwmodgetarray( ); if ( !$mod || !$a_mods[$mod] ) { exit( "Module not found" ); } checkloggedinadm( ); $HW_MOD = $mod; $HW_MOD_DIR = MOD_DIR.$HW_MOD."/"; $HW_MOD_URL = "modules.php?mod=".$HW_MOD; define( "HW_MOD", $mod ); define( "HW_MOD_DIR", MOD_DIR.HW_MOD."/" ); define( "HW_MOD_URL", "modules.php?mod=".HW_MOD ); define( "HW_MOD_TPL", HW_MOD_DIR."tpl/admin/" ); $MOD_CFG = $O_HW->GetModOptions( HW_MOD ); $mod_descr = hwgetmoduledescr( HW_MOD ); if ( !hwhasvalidkey( HW_MOD ) ) { exit( "Module is not licensed for this domain : ".HW_MOD ); } include( HW_MOD_DIR."hw_admin.php" ); hwmodloadlng( HW_MOD ); $HW_WRAP = 1; if ( $pg == "setup" || $_GET['pg'] == "setup" ) { $buf = showmodsetuppage( ); } else { $func = HW_MOD."_main"; if ( !function_exists( $func ) ) { exit( ); } ob_start( ); $ret_buf = $func( ); $buf = ob_get_contents( ); ob_end_clean( ); if ( empty( $buf ) ) { $buf = $ret_buf; } unset( $ret_buf ); } if ( $HW_WRAP ) { $buf = showadmheader( 0 ).$buf.showadmfooter( 0 ); } hwprocesstags( $buf ); echo $buf; printparsetime( ); ?> Запускаю в системе - получаю ответ Очевидно, шибка в отрезке Code: define( "HTTP_HOST", $_SERVER['HTTP_HOST'] ); define( "ADMIN_AREA", 1 ); require( "../inc/application.php" ); if ( basename( __FILE__ ) != "modules.php" ) { exit( "Access Denied" ); } $mod = $_POST['mod'] ? $_POST['mod'] : $_GET['mod']; $mod = ( boolean )$mod; $a_mods = hwmodgetarray( ); if ( !$mod || !$a_mods[$mod] ) { exit( "Module not found" ); } а особенно в Code: $mod = $_POST['mod'] ? $_POST['mod'] : $_GET['mod']; $mod = ( boolean )$mod; $a_mods = hwmodgetarray( ); Прошу помочь. Подозрение общее на ошибку в цикле, либо пропущена запятая или скобка!
На твоём месте ябы закомментировал бы так Code: <?php function ShowModSetupPage( $tpl_f = "" ) { global $O_HW; global $err_msg; global $MOD_CFG; $A_CFG = array( ); include( SITE_PATH."modules/".HW_MOD."/hw_info.php" ); if ( $A_CFG ) { $a_v = $O_HW->GetModOptions( HW_MOD ); if ( is_array( $a_v ) ) { foreach ( array_keys( $a_v ) as $k ) { if ( !isset( $A_CFG[$k] ) ) { unset( $a_v[$k] ); } } if ( $a_v ) { $A_CFG = array_merge( $A_CFG, $a_v ); } unset( $a_v ); } } if ( $_POST['go'] ) { if ( $A_CFG ) { foreach ( array_keys( $A_CFG ) as $k ) { if ( !isset( $_POST[$k] ) && substr( $k, 0, 3 ) != "EN_" ) { continue; } $A_CFG[$k] = $_POST[$k]; } } $func = HW_MOD."_SetupValidate"; if ( function_exists( $func ) ) { $err_msg = $func( ); } if ( !$err_msg ) { $func = HW_MOD."_SetupOnSave"; if ( function_exists( $func ) ) { $func( $A_CFG ); } $O_HW->SetModOptions( HW_MOD, $A_CFG ); $MOD_CFG = $O_HW->GetModOptions( HW_MOD ); $err_msg = hwlng( "updated_ok" ); } } $z = array( ); if ( $A_CFG ) { foreach ( $A_CFG as $k => $v ) { if ( substr( $k, 0, 3 ) == "EN_" ) { $z[$k] = $v ? "checked" : ""; } else { $z[$k] = $v; } } } $func = HW_MOD."_SetupPrepare"; if ( function_exists( $func ) ) { $func( $z ); } if ( !$tpl_f ) { $tpl_f = HW_MOD_TPL."setup.htm"; } return evaladvtpl( $tpl_f, $z ); } function hwGetModuleDescr( $mod ) { global $db; list( $state, $descr ) = $db->one_row( "SELECT state,descr FROM ".TBL_MODULES." WHERE dir=".$db->esc( $mod )." AND admin_capable=\"1\"" ); if ( $state != "A" && $state != "I" ) { showadmheader( ); echo "Module is not available"; showadmfooter( ); exit( ); } return $descr; } define( "HTTP_HOST", $_SERVER['HTTP_HOST'] ); define( "ADMIN_AREA", 1 ); require( "../inc/application.php" ); if ( basename( __FILE__ ) != "modules.php" ) { exit( "Access Denied" ); } $mod = $_POST['mod'] ? $_POST['mod'] : $_GET['mod']; $mod = ( boolean )$mod; //$a_mods = hwmodgetarray( ); закомментил т.к. больше нигде не встречается //if ( !$mod || !$a_mods[$mod] ) скрипт выполняет условие которое нам ненадо? так закоменнтим это условие! //{ // exit( "Module not found" ); //} checkloggedinadm( ); $HW_MOD = $mod; $HW_MOD_DIR = MOD_DIR.$HW_MOD."/"; $HW_MOD_URL = "modules.php?mod=".$HW_MOD; define( "HW_MOD", $mod ); define( "HW_MOD_DIR", MOD_DIR.HW_MOD."/" ); define( "HW_MOD_URL", "modules.php?mod=".HW_MOD ); define( "HW_MOD_TPL", HW_MOD_DIR."tpl/admin/" ); $MOD_CFG = $O_HW->GetModOptions( HW_MOD ); //$mod_descr = hwgetmoduledescr( HW_MOD ); закомментил т.к. больше нигде не встречается //if ( !hwhasvalidkey( HW_MOD ) ) //{ // exit( "Module is not licensed for this domain : ".HW_MOD ); //} include( HW_MOD_DIR."hw_admin.php" ); hwmodloadlng( HW_MOD ); $HW_WRAP = 1; if ( $pg == "setup" || $_GET['pg'] == "setup" ) { $buf = showmodsetuppage( ); } else { $func = HW_MOD."_main"; if ( !function_exists( $func ) ) { exit( ); } ob_start( ); $ret_buf = $func( ); $buf = ob_get_contents( ); ob_end_clean( ); if ( empty( $buf ) ) { $buf = $ret_buf; } unset( $ret_buf ); } if ( $HW_WRAP ) { $buf = showadmheader( 0 ).$buf.showadmfooter( 0 ); } hwprocesstags( $buf ); echo $buf; printparsetime( ); ?>
Warning: include(Y:/home/localhost/www/mysite/modules/1hw_admin.php) [function.include]: failed to open stream: No such file or directory in Y:\home\localhost\www\mysite\admin\modules.php on line 128 Warning: include() [function.include]: Failed opening 'Y:/home/localhost/www/mysite/modules/1hw_admin.php' for inclusion (include_path='.;/usr/local/php5/PEAR') in Y:\home\localhost\www\mysite\admin\modules.php on line 128 Комментировать, отсюда следует ничего не надо. Ошибка в синтаксисе - это одна строка. Скрипт не может обратиться к модулю, потому что не получил название папки, путь к которой \modules\Member_phpBB2\hw_admin.php