当我添加一些PHP代码时,我的网站崩溃了

时间:2012-12-19 05:31:43

标签: php joomla joomla2.5 virtuemart

当我在模板文件夹中的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]:The   脚本试图执行方法或访问不完整的属性   宾语。请确保类定义为“VmImage”   您尝试操作的对象在之前加载   调用unserialize()或提供__autoload()函数来加载   中的类定义   C:\ xampp \ htdocs \ chovietnam.com \ templates \ it_thestore4 \ index.php on   第68行

第68行出错是

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

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

3 个答案:

答案 0 :(得分:2)

你的问题是在PHP代码中的某个地方(不一定是你编写的代码),unserialize被调用。数据表示在调用unserialize时不存在的类。因此,PHP无法真正反序列化它:它无法创建不存在的类的实例。同时为class_exists添加require_once支票和VmImage语句。

答案 1 :(得分:0)

听起来像是: 当您访问包含上述代码的站点时,VM会在会话/游戏中存储一些内容。 再次访问时,它会失败,因为会话已恢复,但您的代码加载的php类当时未加载。

尝试尽早或更好地在VM类中加载VM类到自动加载功能

答案 2 :(得分:-2)

试试这个:

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