Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    542

    usare smarty sul server linux con web server apache

    Ciao a tutti,
    qualcuno sa dirmi se devo osservare accorgimenti particolari per far girare un programma PHP che utilizza smarty?

    in locale funziona tutto ma sul server ho il seguente errore:
    Warning: file_exists() [function.file-exists]: open_basedir restriction in effect. File(/components/templates/login_page.tpl) is not within the allowed path(s): (/usr/local/psa/home/vhosts/nomedominio.it/httpdocs:/tmp) in /usr/local/psa/home/vhosts/nomedominio.it/httpdocs/prova/miacartella/libs/smartylibs/Smarty.class.php on line 1510

    il file login.php e i file di smarty sono nella cartella prova/miacartella

    La funzionze interessata è questa:
    Codice PHP:
        function _parse_resource_name(&$params) {
            
            
    // split tpl_path by the first colon
            
    $_resource_name_parts explode ':'$params ['resource_name'], );
            
            if (
    count $_resource_name_parts ) == 1) {
                
    // no resource type given
                
    $params ['resource_type'] = $this->default_resource_type;
                
    $params ['resource_name'] = $_resource_name_parts [0];
            } else {
                if (
    strlen $_resource_name_parts [0] ) == 1) {
                    
    // 1 char is not resource type, but part of filepath
                    
    $params ['resource_type'] = $this->default_resource_type;
                    
    $params ['resource_name'] = $params ['resource_name'];
                } else {
                    
    $params ['resource_type'] = $_resource_name_parts [0];
                    
    $params ['resource_name'] = $_resource_name_parts [1];
                }
            }
            
            if (
    $params ['resource_type'] == 'file') {
                if (! 
    preg_match '/^([\/\\\\]|[a-zA-Z]:[\/\\\\])/'$params ['resource_name'] )) {
                    
    // relative pathname to $params['resource_base_path']
                    // use the first directory where the file is found
                    
    foreach ( ( array ) $params ['resource_base_path'] as $_curr_path ) {
                        
    $_fullpath $_curr_path DIRECTORY_SEPARATOR $params ['resource_name'];
                        if (
    file_exists $_fullpath ) && is_file $_fullpath )) {
                            
    $params ['resource_name'] = $_fullpath;
                            return 
    true;
                        }
                        
    // didn't find the file, try include_path
                        
    $_params = array ('file_path' => $_fullpath );
                        require_once (
    SMARTY_CORE_DIR 'core.get_include_path.php');
                        if (
    smarty_core_get_include_path $_params$this )) {
                            
    $params ['resource_name'] = $_params ['new_file_path'];
                            return 
    true;
                        }
                    }
                    return 
    false;
                } else {
                    
    /* absolute path */
                    
    return file_exists $params ['resource_name'] );
                }
            } elseif (empty ( 
    $this->_plugins ['resource'] [$params ['resource_type']] )) {
                
    $_params = array ('type' => $params ['resource_type'] );
                require_once (
    SMARTY_CORE_DIR 'core.load_resource_plugin.php');
                
    smarty_core_load_resource_plugin $_params$this );
            }
            
            return 
    true;
        } 
    credo che il problema sia sul contenuto di fullpath che è valorizzata a:
    /components/templates/login_page.tpl

    i file di smarty e dell'esempio sono organizzati così:
    miacartella/cartella components
    miacartella/cartella database_engine
    miacartella/cartella images
    miacartella/cartella libs
    miacartella/cartella template_c
    miacartella/file login.php
    ecc.

    io lancio login.php ma la funzione riportata sopra non raggiunge il file '/components/templates/login_page.tpl'

    spero di essere stato chiaro

    Grazie
    Guidino

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    542
    up
    Guidino

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.