Problemas com classe
Bom dia a todos,
estou utilizando uma classe de carrinho de compras que eu peguei no PhpClasses.org, quando chamo a classe isolada do site, ela funciona bem, porém quando eu coloco ela no meio da estrutura do site ela nao chama e da erro...
Explicando melhor...
Meu código tem um querystring que quando clica no link ele chama "index.php?ir=carrinho" então o php da o include do carrinho na página.
Algo assim, so que com mais segurança é claro.. mas é somente para vocÊs terem uma ideia.
include("inc/".$_GET[ir].".php");
Quando eu tento executar o carrinho através deste include ele da um erro.
Fatal error: Call to a member function addItem() on a non-object in C:\php\htdocs\diskingressos\inc\carrinho.php on line 6
Porém se eu alterar o include da LIB do carrinho e executar o arquivo direto, ou seja não pela query string(include e etc), http://localhost/pasta/inc/carrinho.php ele mostra o carrinho funcionando certo.
To colocando logo abaixo a página do carrinho
inc/carrinho.php
<div id='cont'>
<h4> Carrinho de Compras</h4>
<?
require_once "lib/carrinho.php";
$cart_object->addItem(new faucartelement("LCD Monitor","12 ms",240.12));
$cart_object->addItem(new faucartelement("LCD Monit2r","12 ms",243.12));
$cart_object->addItem(new faucartelement("LCD Monito3r","121 ms",247.12));
$cart_object->addItem(new faucartelement("LCD Monito5r","12 ms",248.12));
?>
</div>
Página da lib do carrinho
lib/carrinho.php
<?
Very small and lightweight e-commerce cart ###
by Fausto Iannuzzi - 2005 ###
################################################
#
Faucart Library
#
by Fausto Iannuzzi - 2005 - free to use
#
################################################
$cart_name = "carrinho";
$cart_object = null;
class faucartelement {
# Reserved variables
var $object_id;
var $name;
var $description;
var $price;
var $quantity;
function faucartelement($name,$description,$price) {
$this->name = $name;
$this->description = $description;
$this->price = $price;
$this->quantity = 1;
$this->object_id = md5($name.$description.$price);
}
}
class faucart {
# Reserved variables
var $_items;
var $_current_item;
var $_total;
function faucart() {
$this->_items = array();
$this->_current_item = 0;
$this->_total = 0;
}
function isFound($item_number) {
for ($i=0;$i<count($this->_items);$i++) {
if (isset($this->_items[$i])) {
if ($this->_items[$i]->object_id == $item_number->object_id)
return $i;
}
}
return false;
}
function atIndex($object_id) {
for ($i=0;$i<count($this->_items);$i++) {
if (isset($this->_items[$i])) {
if ($this->_items[$i]->object_id == $object_id)
return $i;
}
}
return false;
}
function addItem($item) {
$index = $this->isFound($item);
if ($index!==false)
; #$this->updateQuantity($item,1,$index);
else {
$this->_items[] = $item;
}
}
function delItem($item_number) {
$temp_items = array();
for ($i=0;$i<count($this->_items);$i++) {
if (isset($this->_items[$i])) {
if ($this->_items[$i]->object_id == $item_number->object_id)
continue;
else
$temp_items[] = $this->_items[$i];
}
}
$this->_items = $temp_items;
unset($temp_items);
}
function delItemByObjectID($object_id) {
$temp_items = array();
for ($i=0;$i<count($this->_items);$i++) {
if (isset($this->_items[$i])) {
if ($this->_items[$i]->object_id == $object_id)
continue;
else
$temp_items[] = $this->_items[$i];
}
}
$this->_items = $temp_items;
unset($temp_items);
}
function getItems() {
return $this->_items;
}
function updateQuantity($item,$delta,$index=false) {
if ($index == false) {
$index = $this->isFound($item);
}
$this->_items[$index]->quantity += $delta;
}
function emptyCart() {
unset($this->_items);
$this->_items = array();
$this->_total = 0;
}
function total() {
$this->_total = 0;
for ($i=0;$i<count($this->_items);$i++) {
if (isset($this->_items[$i])) {
$this->_total += number_format((double)($this->_items[$i]->quantity*$this->_items[$i]->price),2, '.', '');
}
}
}
}
function inSession() {
global $cart_name;
global $cart_object;
if (isset($_SESSION[$cart_name]))
$cart_object = unserialize($_SESSION[$cart_name]);
else
$cart_object = new faucart();
}
function toSession() {
global $cart_name;
global $cart_object;
if (isset($_SESSION[$cart_name]))
unset($_SESSION[$cart_name]);
$_SESSION[$cart_name] = serialize($cart_object);
}
inSession();
?>
so lembrando que quando eu executo o inc/carrinho.php direto eu altero o require_once para ../lib/carrinho.php
Espero ajuda ..
vlw
Discussão (3)
Carregando comentários...