当我在模板文件夹中的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.谢谢
答案 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); ?>