Дезенд с ошибками

Discussion in 'PHP' started by serg-php, 18 Mar 2008.

  1. serg-php

    serg-php Elder - Старейшина

    Joined:
    28 Jan 2008
    Messages:
    313
    Likes Received:
    9
    Reputations:
    0
    Ошибку получаю:



     
  2. prognonic

    prognonic New Member

    Joined:
    20 Mar 2008
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Запускаешь видишь ошибку....
    Пытаешься понять почему она....
    Или косяк в синтексисе или логика поломалась...
     
  3. prognonic

    prognonic New Member

    Joined:
    20 Mar 2008
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    А там есть в коде инициализация базы?
    И что в $tbl?
    Сама таблица на месте?
     
  4. serg-php

    serg-php Elder - Старейшина

    Joined:
    28 Jan 2008
    Messages:
    313
    Likes Received:
    9
    Reputations:
    0
    Таблица на месте!
     
  5. serg-php

    serg-php Elder - Старейшина

    Joined:
    28 Jan 2008
    Messages:
    313
    Likes Received:
    9
    Reputations:
    0
    Выше привел оригинал файла до дезенда!
     
  6. serg-php

    serg-php Elder - Старейшина

    Joined:
    28 Jan 2008
    Messages:
    313
    Likes Received:
    9
    Reputations:
    0
    Другой подход

    Код скрипта следующий:

    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( );

    Прошу помочь. Подозрение общее на ошибку в цикле, либо пропущена запятая или скобка!
     
  7. do217

    do217 New Member

    Joined:
    13 Mar 2008
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    На твоём месте ябы закомментировал бы так
    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( );
    ?>
    
    
    
     
  8. serg-php

    serg-php Elder - Старейшина

    Joined:
    28 Jan 2008
    Messages:
    313
    Likes Received:
    9
    Reputations:
    0
    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
     
  9. prognonic

    prognonic New Member

    Joined:
    20 Mar 2008
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Ну да пропиши ее напрямую
     
  10. serg-php

    serg-php Elder - Старейшина

    Joined:
    28 Jan 2008
    Messages:
    313
    Likes Received:
    9
    Reputations:
    0
    Вся проблема в том, что дезендер делает ошибки! Я не знаю какой там файл нужен!