-3

これらの php コードをテンプレート フォルダーの index.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」がロードされていることを確認する か、C:\xampp\htdocs\chovietnam.com\ でクラス定義をロードする __autoload() 関数を提供してください。 68 行目の templates\it_thestore4\index.php

68行目のメイクエラーは

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

初めてホームページにアクセスしたときは問題なく機能しますが、再度ホームページにアクセスするとエラーが発生します。そして、ブラウザのすべてのCookie、キャッシュ...をクリアすると、再びOKになり、ホームページに再度アクセスするとエラーが発生します。しかし、他のページ(ホームページではなく、それらのコードはそのページで引き続き機能します)にアクセスすると、エラーは表示されず、誰もがこの問題の解決を手伝ってくれるようです。私は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 はセッション/コックに何かを保存しています。セッションが復元されるため、再度表示すると失敗しますが、コードによってロードされた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 に答える