1

我已经使用 ionCube(ver. 8.3) 加密 .tpl,.php 文件,包括 smarty 库文件,我能够通过检查所有混淆选项成功对它们进行编码,并且还能够生成密钥文件。但是当我尝试打开我的 index.php 页面时,它给了我以下错误...

致命错误:在 C:\cc\htdocs\App_Encode\Smarty\libs\Smarty.class.php 中未找到带有消息 'Function 'smartyAutoload' 的未捕获异常 'LogicException'(未找到函数 'smartyAutoload' 或无效的函数名称)': 0 堆栈跟踪:#0 C:\cc\htdocs\App_Encode\Smarty\libs\Smarty.class.php(0):混淆 #1 C:\cc\htdocs\App_Encode\index_standard_creation.php(0):unknown() #2 {main} 在第 0 行的 C:\cc\htdocs\App_Encode\Smarty\libs\Smarty.class.php 中抛出

ionCube 提供的补丁适用于 Smarty 2.* ..因为我使用的是Smarty 3.1.18版本和PHP Ver。5.5 ...

我不知道问题出在哪里,因为我是 PHP 编程新手。我已经尝试在 \libs\plugins\smarty_internal_resource_file.php 中的 getContent() 函数中使用以下补丁 ..但这没有用:(

public function getContent(Smarty_Template_Source $source)
{
   if ($source->timestamp) {
        if (function_exists('ioncube_read_file')) {
            return ioncube_read_file($source->filepath);
        } else {
            return file_get_contents($source->filepath);
        }
    }
    if ($source instanceof Smarty_Config_Source) {
        throw new SmartyException("Unable to read config {$source->type} '{$source->name}'");
    }
    throw new SmartyException("Unable to read template {$source->type} '{$source->name}'");
}

请帮帮我!!

4

1 回答 1

1

您已经使用了来自http://www.smarty.net/forums/viewtopic.php?t=20562的 Smarty 3 的好补丁

您还必须对 Smarty 或至少已修补的文件进行编码,因为 ioncube_read_file() 只能在编码文件中使用(在这种情况下,在非编码文件中使用解密例程将毫无意义)。如果出现错误,ioncube_read_file() 将返回错误代码作为整数而不是文件内容作为字符串,因此您可以扩展补丁以测试该错误并在某处记录错误代码。错误代码也作为 ionCube Loader 定义的常量存在,并且代码和常量记录在用户指南 PDF 中。

于 2014-08-22T08:29:38.677 回答