• User

    Script che funziona con php4 e non con php5

    Ho uno script php che con php4 va benissimo ma con php5 ....non da niente! 😮

    In realtà crea una pagina all'interno della quale viene richimato un altro script php (con un suo template .html).

    Questo è lo script:

    [php]include_once("module_config.php");
    include_once("php/gen/startup.php");
    if(!$debug)
    {
    error_reporting(0);
    }
    $user_level=4;
    if(!$glob['pag'])
    {
    $glob['pag']='home';
    }

    if($glob['act'] && !$glob['skip_action'])
    {
    include_once("php/gen/func_perm.php");
    list($cls_name,$func_name )=split("-",$glob['act']);
    if(($cls_name)&&($func_name)&&(is_file("classes/cls_".$cls_name.".php"))&&($func_access[$cls_name][$func_name]))
    {
    if($user_level<=$func_access[$cls_name][$func_name])
    {
    include_once("classes/cls_".$cls_name.".php");
    $cls_name= new $cls_name;
    if (!$cls_name->$func_name($glob))
    {
    if($debug)
    {
    $glob['error'].="Failed to execute function $func_name";
    }
    }
    unset($cls_name);
    unset($func_name);
    }
    else
    {
    if($debug)
    {
    $glob['error']= "You are not allowed to run this function !";
    }
    $glob['pag']= "home";
    }
    }
    else
    {
    if($debug)
    {
    echo "Can not find cls_".$cls_name.".php file<BR>";
    }
    }
    }

    include_once("php/gen/page_perm.php");

    if($glob['pag'])
    {

    if($page_access[$glob['pag']]['perm'] && $page_access[$glob['pag']]['perm'] >= $user_level)
    {
     
     $page=include("php/".$glob['pag'].".php");
     
    }
    else
    {
     $page=include("php/home.php");
     
    }
    

    }
    //$menu=include("php/gen/menu.php");
    // mio ultimi

    $ultimi=include("index_last_home.php") ;
    $vetrina=include("car_vetrina_home.php") ;
    $marche=include("marche.php") ;

    // fine mio ultimi
    $ftm=new FastTemplate("");
    $ftm->define(array('main'=>"main_template.html"));
    $ftm->assign('PAGE',$page);
    $ftm->assign('ULTIMO',$ultimo);
    $ftm->assign('VETRINA',$vetrina);
    $ftm->assign('MARCHE',$marche);
    //$ftm->assign('MENU',$menu);
    $ftm->parse('CONTENT','main');
    $ftm->fastprint('CONTENT');[/php]

    Praticamente all'interno di PAGE richiama home.php ....ma con php5....non funzia!!!!!!!
    😢


  • User Attivo

    Che cosa intendi per "non funziona"?
    Che comportamento ottieni?
    Se visualizzi il sorgente della pagina restituita al browser, noti qualcosa di strano (es. codice PHP)?
    Abilitando la visualizzazione di tutti gli errori, viene mostrato qualcosa di utile (es. warning, notice, etc.)?


  • User

    [...]

    Ciao innanzitutto buongiorno.
    No non visualizzo nulla.
    Ho provato con le query...prese da sole funzionano.
    E' come se nella variabile PAGE php non riuscisse a passare l'include di home.php .
    In pratica la prima pagina (index.php) legge un template html nel quale è posizionato la variabile {PAGE} al cui interno dovrebbe aversi l'assegnazione dell'include di home.php (che a sua volta fa delle queri e legge un suo template home.htm ).
    Lo stesso anche in altre pagine...ci sono dei template che hanno variabili del tipo {xxxxx}....
    Con php4 funzia ....con php5....ho solo il template inziale senza l'inclusione dell'home.php e quindi delle necessarie funzioni....
    Con php5 ho anche attivato lo zend1 (retrocompatibilità) ma il problema resta....


  • User Attivo

    Sei sicuro del modo in cui stai utilizzando include()?
    Non è che dovresti usare un codice tipo:

    [php]ob_start();
    include("index_last_home.php") ;
    $ultimi = ob_get_clean();[/php]


  • User

    [..]

    Posso provarci ....ma non coprendo, perdonami la differenza...
    Anche perchè, scusa se ne approfitto della tua gentilezza, non capisco perchè con php4 tutto funzio in modo impeccabile...come carico php5 ...

    Io pensavo fosse più questa assegnazione : $ftm->assign('PAGE',$page);
    a creare caos....
    Purtroppo per provare (dispongo di un solo server) devo caricare di nuovo php5 .... 😞


  • User

    Non funge uguale....

    Non riesco davvero a capire...con php4 funziona da favola ma con il php5 nisba....

    Questa è la function PARSE :

    [php]// ************************************************************
    // The meat of the whole class. The magic happens here.
    function parse ( $ReturnVar, $FileTags )
    {
    $append = false;
    $this->LAST = $ReturnVar;
    $this->HANDLE[$ReturnVar] = 1;
    if (gettype($FileTags) == "array")
    {
    unset($this->$ReturnVar); // Clear any previous data
    while ( list ( $key , $val ) = each ( $FileTags ) )
    {
    if ( (!isset($this->$val)) || (empty($this->$val)) )
    {
    $this->LOADED["$val"] = 1;
    if(isset($this->DYNAMIC["$val"]))
    {
    $this->parse_dynamic($val,$ReturnVar);
    }
    else
    {
    $fileName = $this->FILELIST["$val"];
    $this->$val = $this->get_template($fileName);
    }
    }
    // Array context implies overwrite
    $this->$ReturnVar = $this->parse_template($this->$val,$this->PARSEVARS);
    // For recursive calls.
    $this->assign( array( $ReturnVar => $this->$ReturnVar ) );
    }
    } // end if FileTags is array()
    else
    {
    // FileTags is not an array
    $val = $FileTags;
    if( (substr($val,0,1)) == '.' )
    {
    // Append this template to a previous ReturnVar
    $append = true;
    $val = substr($val,1);
    }
    if ( (!isset($this->$val)) || (empty($this->$val)) )
    {
    $this->LOADED["$val"] = 1;
    if(isset($this->DYNAMIC["$val"]))
    {
    $this->parse_dynamic($val,$ReturnVar);
    }
    else
    {
    $fileName = $this->FILELIST["$val"];
    $this->$val = $this->get_template($fileName);
    }
    }
    if($append)
    {
    $this->$ReturnVar .= $this->parse_template($this->$val,$this->PARSEVARS);
    }
    else
    {
    $this->$ReturnVar = $this->parse_template($this->$val,$this->PARSEVARS);
    }
    // For recursive calls.
    $this->assign(array( $ReturnVar => $this->$ReturnVar) );
    }
    return;
    } // End parse()

    // ************************************************************[/php]

    ❌x