Avatar billede nixxdk Nybegynder
28. juli 2006 - 19:10 Der er 1 kommentar

Fatal error i cms!

Har lige installeret et cms på www.nixx.dk, men efter jeg opsatte det ville jeg ind og se om det virkede, men så skriver den bare denne fejl:

Fatal error: Call to undefined function token_get_all() in /customers/nixx.dk/nixx.dk/httpd.www/includes/classes/Smarty/internals/core.write_compiled_include.php on line 45

Siden med fejl er her:

<?php
/**
* Smarty plugin
* @package Smarty
* @subpackage plugins
*/

/**
* Extract non-cacheable parts out of compiled template and write it
*
* @param string $compile_path
* @param string $template_compiled
* @return boolean
*/

function smarty_core_write_compiled_include($params, &$smarty)
{
    $_tag_start = 'if \(\$this->caching && \!\$this->_cache_including\) \{ echo \'\{nocache\:('.$params['cache_serial'].')#(\d+)\}\'; \};';
    $_tag_end  = 'if \(\$this->caching && \!\$this->_cache_including\) \{ echo \'\{/nocache\:(\\2)#(\\3)\}\'; \};';

    preg_match_all('!('.$_tag_start.'(.*)'.$_tag_end.')!Us',
                  $params['compiled_content'], $_match_source, PREG_SET_ORDER);

    // no nocache-parts found: done
    if (count($_match_source)==0) return;

    // convert the matched php-code to functions
    $_include_compiled =  "<?php /* Smarty version ".$smarty->_version.", created on ".strftime("%Y-%m-%d %H:%M:%S")."\n";
    $_include_compiled .= "        compiled from " . strtr(urlencode($params['resource_name']), array('%2F'=>'/', '%3A'=>':')) . " */\n\n";

    $_compile_path = $params['include_file_path'];

    $smarty->_cache_serials[$_compile_path] = $params['cache_serial'];
    $_include_compiled .= "\$this->_cache_serials['".$_compile_path."'] = '".$params['cache_serial']."';\n\n?>";

    $_include_compiled .= $params['plugins_code'];
    $_include_compiled .= "<?php";

    $this_varname = ((double)phpversion() >= 5.0) ? '_smarty' : 'this';
    for ($_i = 0, $_for_max = count($_match_source); $_i < $_for_max; $_i++) {
        $_match =& $_match_source[$_i];
        $source = $_match[4];
        if ($this_varname == '_smarty') {
            /* rename $this to $_smarty in the sourcecode */
            $tokens = token_get_all('<?php ' . $_match[4]);

            /* remove trailing <?php */
            $open_tag = '';
            while ($tokens) {
                $token = array_shift($tokens);
                if (is_array($token)) {
                    $open_tag .= $token[1];
                } else {
                    $open_tag .= $token;
                }
                if ($open_tag == '<?php ') break;
            }

            for ($i=0, $count = count($tokens); $i < $count; $i++) {
                if (is_array($tokens[$i])) {
                    if ($tokens[$i][0] == T_VARIABLE && $tokens[$i][1] == '$this') {
                        $tokens[$i] = '$' . $this_varname;
                    } else {
                        $tokens[$i] = $tokens[$i][1];
                    }                 
                }
            }
            $source = implode('', $tokens);
        }

        /* add function to compiled include */
        $_include_compiled .= "
function _smarty_tplfunc_$_match[2]_$_match[3](&\$$this_varname)
{
$source
}

";
    }
    $_include_compiled .= "\n\n?>\n";

    $_params = array('filename' => $_compile_path,
                    'contents' => $_include_compiled, 'create_dirs' => true);

    require_once(SMARTY_CORE_DIR . 'core.write_file.php');
    smarty_core_write_file($_params, $smarty);
    return true;
}


?>

Nogen der kan løse problemmet?
Avatar billede pidgeot Nybegynder
28. juli 2006 - 19:45 #1
Den mangler funktionen token_get_all, der er en del af PHP 4.2.0 og senere (http://dk2.php.net/manual/en/function.token-get-all.php). Jeg kan se du bruger 5.1.4 på dit webhotel (som er B-one, jf. dine whois-oplysninger), så det er ikke det der er galt - det er nemlig aktiveret som standard i 4.3.0 og bagefter, og B-one har ikke deaktiveret den ved kompilering.

Det er muligt den ligger som en plugin der ikke er indlæst - men da B-one kører i safe mode, er det ikke umiddelbart muligt at loade den selv.

Du kan prøve at skifte til PHP 4 i dit kontrolpanel, men hvis det ikke virker eller ikke er muligt (fordi du bruger noget kode der kræver PHP 5), bør du nok overveje lige at kontakte support om det - det burde nok kunne aktiveres hos dem.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester