-3

当我在模板文件夹中的 index.php 中添加这些 php 代码时,我的网站已经崩溃:

<?php
                    if (!class_exists( 'VmModel' )) require_once(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_virtuemart'.DS.'helpers'.DS.'vmmodel.php');
                    if (!class_exists( 'VmConfig' )) require_once(JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_virtuemart'.DS.'helpers'.DS.'config.php');
                    if(!class_exists('VirtueMartCart')) require_once(JPATH_VM_SITE.DS.'helpers'.DS.'cart.php');
                    $hv_cart = VirtueMartCart::getCart(true);
                    foreach( $hv_cart->products as $pkey =>$prow ){?>
                        <li class="ui-widget-content ui-corner-tr" style="width: 48px;">
                            <?php echo $prow->image-> displayMediaThumb('style="height: 36px; width: 100%"',false); ?>
                            <span>SL:<?php echo $prow->quantity; ?></span>
                            <span class="hv_hidden" product_id="<?php echo $prow->virtuemart_product_id; ?>" quantity="<?php echo $prow->quantity; ?>"> </span>
                        </li>
                    <?php
                    }
                ?>

当我访问主页时,服务器显示错误:

致命错误:main() [function.main]:脚本试图执行方法或访问不完整对象的属性。请确保在调用 unserialize()之前加载了您尝试操作的对象的类定义“VmImage”, 或提供 __autoload() 函数来加载 C:\xampp\htdocs\chovietnam.com\ 中的类定义templates\it_thestore4\index.php 第 68 行

第 68 行 make 错误是

<?php echo $prow->image-> displayMediaThumb('style="height: 36px; width: 100%"',false); ?>

我第一次访问主页时它仍然可以正常工作,但是当我再次访问主页时,它会出错。而且我清除了浏览器的所有cookie,缓存......它会再次正常并在我再次访问主页时出错。但是如果我访问其他页面(不是主页,并且这些代码仍然在该页面中工作)没有错误出现任何人都可以帮助我解决这个问题,我使用 Joomla 2.5 和 Virtuemart 2。谢谢

4

3 回答 3

2

您的问题是 PHP 代码(不一定是您编写的代码)中的某处unserialize被调用。数据表示在调用 时不存在的类unserialize。因此,PHP 不能真正反序列化它:它不能创建一个不存在的类的实例。也添加一个class_exists检查和require_once声明VmImage

于 2012-12-19T05:40:35.747 回答
0

听起来像:当您访问包含上面代码的站点时,VM 正在会话/cockie 中存储一些东西。当您再次访问时,它将失败,因为会话已恢复,但您的代码加载的 php 类当时未加载。

尝试尽早将 VM 类加载到自动加载函数中,或者更好地加载 VM 类

于 2012-12-20T07:33:17.987 回答
-2

尝试这个:

<? php echo $prow->image-> displayMediaThumb('style=\"height: 36px; width: 100%\"',false); ?>
于 2012-12-19T05:35:56.463 回答