php 5
Boa tarde pessoal do fórum,
Preciso de um help de vocês, seguinte, fizemos um site todo em php 4 e agora o cliente mudou a versão do php 4 para 5 e as variáveis que antes funcionavem perfeitamente não funcionam e já tentei quase de tudo mas não consegui resolver.
Observação - ao tentar inserir o produto ocorre o seguinte erro "Fatal error: Call to a member function AdicionarItem() on a non-object in /home/www/romagnole-cd.com.br/cd/orcamento.php on line 40"
O cliente fará um orçamento, incluindo os produtos no carrinho, tarefa fácil, antes do php 5, agora nem por decreto consigo inserir, consigo resgatar as variáveis, mas não consigo adiciona-las ao meu carrinho, vejam o codigo da página que "insere o produto no carrinho":
CODE
<?php
/* Esta função irá ativar o buffer de saída. Enquanto o buffer de saída estiver ativo,
não é enviada a saída do script (outros que não sejam cabeçalhos), ao invés a saída é guardada em um buffer interno.*/
ob_start();
/*
Autor - Valter Ferreira Martins
Data - Setembro/2006
Objetivo - Carrinho que abastece orçamento
*/
$id_prod = $_GET["id_prod"];
$op = $_GET["op"];
include("config.php");
include("TMySQL.php");
include("TCarrinho.php");
session_start();
//Verificando se a variavel de sessão foi criada
if (!session_is_registered("MeuCarrinho")){
session_register("MeuCarrinho");
$MeuCarrinho = new TCarrinho();
}
$MySQL = new TMySQL();
$MySQL->connect($host, $db, $user, $pass);
if (!empty($op)){
switch ($op) {
case "adicionar":
if (!empty($id_prod)){
$Query = "select * from roma_produto where id_prod = $id_prod ";
$R_Query = $MySQL->query($Query);
if (mysql_num_rows($R_Query) > 0){
$MeuCarrinho->AdicionarItem($id_prod,1);
}
}
break;
case "excluir":
$MeuCarrinho->RemoverItem($id_prod);
break;
case "atualizar":
$MeuCarrinho->AtualizarCarrinho($HTTP_POST_VARS);
break;
case "finalizar":
if ($MeuCarrinho->QuantosItens()>0) {
header("Location:OrcamentoFinal.php");
}
break;
}
}
$QuerySQL = " select id_prod, codigo, descricao, medida from roma_produto " . $MeuCarrinho->QuerySQL_ObtemListaDeItens();
//echo $QuerySQL;
$Resultado = $MySQL->query($QuerySQL);
?>
Aqui estão os includes da página:
TMySQL
CODE
<? class TMySQL {
var $host;
var $db;
var $user;
var $pass;
var $soquete;
function connect($host,$db,$user,$pass) {
$this->host = $host;
$this->db = $db;
$this->user = $user;
$this->pass = $pass;
$this->soquete=mysql_connect($this->host,$this->user,$this->pass);
if (!$this->soquete) {
echo "Não foi possível conectar-se ao Banco de Dados MySQL";
}
else
{
if (!mysql_select_db($this->db,$this->soquete)) {
echo "Banco de dados não encontrado";
}
}
}
function query ($string) {
$myquery = mysql_query($string,$this->soquete);
if (!$myquery) {
echo "Erro na consulta da query<br>" . $string;
}
else
{
return $myquery;
}
}
}
?>
TCarrinho
CODE
<?php
include("config.php");
class TCarrinho {
var $item_codigo = array();
var $item_quantidade = array();
/* Obtem Posicao, este metodo obtem a posicao de um item mediante ao seu codigo, retornando um valor booleano e gravando a posicao na variavel de referencia $posicao, caso o codigo do item esteja no carrinho. */
function ObtemPosicao($codigo,&$posicao){
//Percorrendo o vetor
for($i=0;$i<count($this->item_codigo);$i++) {
if ($this->item_codigo[$i] == $codigo) {
$posicao = $i;
return TRUE;
}
}
}/* ObtemPosicao() */
/*
AdicionarItem
Este metodo adiciona um item no carrinho
*/
function AdicionarItem($codigo,$quantidade)
{
//Inicializando parametro
$posicao = -1;
$achou = $this->ObtemPosicao($codigo,$posicao);
if (!$achou){
$this->item_codigo[] = $codigo;
$this->item_quantidade[] = $quantidade;
}
} /* AdicionarItem() */
/*
RemoverItem
Este metodo remove um item do carrinho de compra, passando o codigo do produto
*/
function RemoverItem($codigo)
{
//Inicializando parametro
$posicao = -1;
$achou = $this->ObtemPosicao($codigo,$posicao);
if ($achou){
//Removendo o elemento do vetor
array_splice($this->item_codigo, $posicao, 1);
array_splice($this->item_quantidade, $posicao, 1);
}
} /* RemoveItem() */
/*
QuantosItens
Este metodo retorna a quantidade de itens incluidas no carrinho de compras
*/
function QuantosItens() {
return count($this->item_quantidade);
} /* QuantosItens() */
/*
ExcluirTodosItens
Este metodo retira todos os itens contidos no carrinho de compras
*/
function ExcluirTodosItens(){
$this->item_quantidade = null;
$this->item_codigo = null;
} /* ExcluirTodosItens() */
/*
QuerySQL_ObtemListaDeItens
Este metodo gera uma parte do codigo SQL que sera usado para buscar os dados
do carrinho de compra (id_prod, NOME e PREÇO). O comando SQL final tera como finalidade
de buscar no banco de dados apenas os dados dos itens incluidos no carrinho.
*/
function QuerySQL_ObtemListaDeItens(){
$itens = "where ";
$STR = "";
if ($this->QuantosItens()>0) {
$fixo = " id_prod =";
for ($i=0;$i<$this->QuantosItens();$i++){
$STR = $STR . $fixo . " " . $this->item_codigo[$i];
if ($i+1<$this->QuantosItens()) {
$STR = $STR . " or ";
}
}
}
if (!$STR == "") {
return $itens . $STR;
}else{
//Caso não exista nenhum item no carrinho o codigo final SQL, procurara por um item que não existe na tabela de produtos, neste caso -1.
return " where id_prod = -1";
}
} /* QuerySQL_ObtemListaDeItens() */
/*
ObtemQuantidadeItem
Este metodo obtem a quantidade de um Item
*/
function ObtemQuantidadeItem($codigo){
$posicao = -1;
$achou = $this->ObtemPosicao($codigo,$posicao);
if ($achou) {
return $this->item_quantidade[$posicao];
}else{
return "erro ao obter quantidade do item";
}
} /* ObtemQuantidaItem() */
/*
ObtemSubTotalDeUmItem
Este metodo retorna o subtotal de um item (QUANTIDADE * VALOR UNITARIO)
*/
function ObtemSubTotalDeUmItem($id_prod,$preco){
$posicao = -1;
$achou = $this->ObtemPosicao($id_prod,$posicao);
if ($achou) {
return ($this->item_quantidade[$posicao]*$preco);
}else{
return "erro ao obter sub total do item";
}
} /* ObtemSubTotalDeUmItem() */
/*
AtualizarCarrinho
Este metodo coleta todos as variaveis enviadas pelo FORMULARO (method="POST")
e atualiza as quantidades dos itens.
*/
function AtualizarCarrinho(&$VAR_ENVIADAS_PELO_BROWSER){
//Percorrendo a lista de itens e atualizando suas quantidades
for ($i=0;$i<$this->QuantosItens();$i++){
$this->item_quantidade[$i] = $VAR_ENVIADAS_PELO_BROWSER[$this->item_codigo[$i]];
}
} /* AtualizarCarrinho() */
} /* Classe TCarrinho */
?>
Se puderem me dar uma luz agradeço.
Fiquem na paz.
Discussão (13)
Carregando comentários...