PHP + SESSÃO com problema

1. PHP + SESSÃO com problema

Diego
dkouti

(usa Outra)

Enviado em 17/02/2016 - 10:36h

boa tarde senhores
Estou com um problema, tenho o seguinte código do carrinho
<?php  session_start();


class Carrinho{

public function Carrinho(){

}

public static function incluiProduto($cod, $valor, $qtd, $peso, $nome, $cor, $tamanho, $id_tamanho, $acabamento, $marca, $qtd_total, $lista, $id_lista,$nome_balada,$rg_balada,$telefone){

if(isset($_SESSION['Carrinho']['Produto'][$cod])){
} else {
$_SESSION['Carrinho']['Produto'][$cod]['qtd'] = 1;
$_SESSION['Carrinho']['Produto'][$cod]['qtd_total'] = $qtd_total;
$_SESSION['Carrinho']['Produto'][$cod]['cor'] = $cor;
$_SESSION['Carrinho']['Produto'][$cod]['tamanho'] = $tamanho;
$_SESSION['Carrinho']['Produto'][$cod]['id_tamanho'] = $id_tamanho;
$_SESSION['Carrinho']['Produto'][$cod]['acabamento'] = $acabamento;
$_SESSION['Carrinho']['Produto'][$cod]['marca'] = $marca;
$_SESSION['Carrinho']['Produto'][$cod]['nome'] = $nome;
$_SESSION['Carrinho']['Produto'][$cod]['valor'] = $valor;
$_SESSION['Carrinho']['Produto'][$cod]['valor_total'] = bcmul($valor,$qtd,2);
$_SESSION['Carrinho']['Produto'][$cod]['peso'] = $peso;
$_SESSION['Carrinho']['Produto'][$cod]['peso_total'] = bcmul($peso,$qtd,3);
$_SESSION['Carrinho']['Produto'][$cod]['lista'] = $lista;
$_SESSION['Carrinho']['Produto'][$cod]['id_lista'] = $id_lista;
$_SESSION['Carrinho']['Produto'][$cod]['Nomealada'] = $nome_balada;
$_SESSION['Carrinho']['Produto'][$cod]['RGBalada'] = $rg_balada;
$_SESSION['Carrinho']['Produto'][$cod]['telefone'] = $telefone;
}

return $_SESSION['Carrinho']['Produto'][$cod]['valor_total'];
}

public function getTotalQtd(){

if(isset($_SESSION['Carrinho']['Produto'])){

foreach($_SESSION['Carrinho']['Produto'] as $key => $value){
$total = bcadd($total, $_SESSION['Carrinho']['Produto'][$key]['qtd'], 0);
}

return ceil($total);

} else {
return $a = "0";
}
}


public function listaProduto($Cartao){

if(isset($Cartao)){
foreach($Cartao as $key => $valor){

$valor['codigo'] = $key;
$lstCartao[] = $valor;
}
return $lstCartao;
} else {
return $a = 0;
}
}

public function getTotalProduto($carrinho){

if(isset($_SESSION['Carrinho']['Produto'])){

foreach($_SESSION['Carrinho']['Produto'] as $key => $value){
$total = bcadd($total, $_SESSION['Carrinho']['Produto'][$key]['valor_total'], 2);
}

if(!isset($_SESSION['Frete'])) return number_format($total, 2, ',', '.');
else {
$total = bcadd($total, $_SESSION['Frete'], 2);
return number_format($total, 2, ',', '.');
}

} else { return $a = "0.00"; }
}

public function getTotalApenasProduto(){

if(isset($_SESSION['Carrinho']['Produto'])){

foreach($_SESSION['Carrinho']['Produto'] as $key => $value){
$total = bcadd($total, $_SESSION['Carrinho']['Produto'][$key]['valor_total'], 2);
}
return $total;
} else { return $a = "0.00"; }
}

public function getTotalPeso(){

if(isset($_SESSION['Carrinho']['Produto'])){

foreach($_SESSION['Carrinho']['Produto'] as $key => $value){
$total = bcadd($total, $_SESSION['Carrinho']['Produto'][$key]['peso_total'], 3);
}

return ceil($total);

} else { return $a = "0.000"; }
}

public function alteraProduto($cod, $qtd){

if($qtd != 0){
if( array_key_exists($cod, $_SESSION['Carrinho']['Produto']) ){

$_SESSION['Carrinho']['Produto'][$cod]['qtd'] = $qtd;

$_SESSION['Carrinho']['Produto'][$cod]['valor_total'] = bcmul($_SESSION['Carrinho']['Produto'][$cod]['valor'], $_SESSION['Carrinho']['Produto'][$cod]['qtd'], 2);

$_SESSION['Carrinho']['Produto'][$cod]['peso_total'] = bcmul($_SESSION['Carrinho']['Produto'][$cod]['peso'], $_SESSION['Carrinho']['Produto'][$cod]['qtd'], 3);

$total = $this->getTotalProduto($_SESSION['Carrinho']['Produto']);

$totais = number_format($_SESSION['Carrinho']['Produto'][$cod]['valor_total'], 2, ',', '.')."/".number_format($total, 2, ',', '.');

return $totais;

} else { echo 1; }
} else { echo $_SESSION['Carrinho']['Produto'][$cod]['valor_total']; }
}

public function excluiProduto($cod){

if( array_key_exists($cod, $_SESSION['Carrinho']['Produto']) ){

unset($_SESSION['Carrinho']['Produto'][$cod]);

if( count($_SESSION['Carrinho']['Produto']) == 0 ){
unset($_SESSION['Carrinho']['Produto']);
}

return $total = $this->getTotalProduto($_SESSION['Carrinho']['Produto']);
} else { echo 1; }
}
}


?>

E funcionava tudo certo até ter que mudar de hospedagem.
Quando chamo assim

$carrinho = new Carrinho();
e depois
$carrinho->getTotalQtd();

e trava a aplicação.
Se dou um var_dump em $_SESSION['Carrinho']['Produto'] ele retorna o conteúdo das sessões;

Em servidor linux ele não funciona, e em servidor Windows funciona normal;


  


2. Re: PHP + SESSÃO com problema

Bruno Thomaz
SarusKant

(usa CentOS)

Enviado em 17/02/2016 - 14:09h

A hospedagem que você contratou, não deve ter esta dependência instalada (php-bcmath), não esta conseguindo fazer o calculo.


3. Re: PHP + SESSÃO com problema

Diego
dkouti

(usa Outra)

Enviado em 17/02/2016 - 14:59h

Muito obrigado, era isso mesmo.

Eu abrir o phpinfo nos dois e mesmo assim não consegui entender.

yum install php-bcmath


4. Re: PHP + SESSÃO com problema

Bruno Thomaz
SarusKant

(usa CentOS)

Enviado em 17/02/2016 - 15:33h

Blz, informe ao tópico como resolvido, por favor.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts