Le script essayé d'exécuter une méthode ou d'accéder à une propriété d'un objet incomplètes

J'obtiens une erreur, le message d'erreur est:

Fatal error: authnet_cart_process() [<a href='function.authnet-cart-process'>function.authnet-cart-process</a>]: The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition &quot;AuthnetCart&quot; of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in /home/golfetc/public_html/wp-content/plugins/sccp-2.4.0/authnet_functions.php on line 1266

Je suis l'aide de session pour stocker panier de l'objet dans l'informatique et plus tard à un certain point. Le authnetCart est fondamentalement classe pour le panier de l'objet.

//Check cart in session
    if(isset($_SESSION['AUTHNET_CART'])) {
        //Get cart from session
        $authnetCart = $_SESSION['AUTHNET_CART'];
        foreach($authnetCart->getCartItems() as $item) {  //Line#1266
            if ($item->getItemId() == $subscription_details->ID ) {
                $addNewItem = false;
                break;
            }
        }
......

Vous pouvez le voir à la ligne 1266, le code ne me permet pas d'accéder à sa méthode. Toute aide sera très appréciée. Grâce

  • Comment êtes-vous de la configuration initiale du $_SESSION['AUTHNET_CART']?
  • inclure AuthnetCart classe avant de désérialisation ou de fournir des __autoload comme indiqué par le message d'erreur. php.net/manual/en/language.oop5.serialization.php
  • qu'est-ce que le var_dump() de $_SESSION['AUTHNET_CART']. si elle ne vient pas comme un objet, il peut aussi causer le problème?
  • Je suis en utilisant une seule méthode d'instance afin d'initialiser l'objet: public static function getInstance() { // Si le panier n'est pas en session, créez-en un et de le mettre là // Sinon l'obtenir à partir de la session if (!isset($_SESSION['AUTHNET_CART'])) { self::$authnetCartInstance = new AuthnetCart(); $_SESSION['AUTHNET_CART'] = self::$authnetCartInstance; } else { self::$authnetCartInstance = $_SESSION['AUTHNET_CART']; } return self::$authnetCartInstance; }
  • C'est tout à fait une vieille question, mais j'ai réalisé cette erreur se produit parce que les données sérialisées ne pas prendre dans les méthodes que la classe a, seules les données qu'il contient. Donc, la nouvelle instance et désérialisation il va ajouter des méthodes à l'objet et au tel. 😛
InformationsquelleAutor Irfan Dayan | 2013-12-18