Carcleo 4 Denunciar post Postado Junho 27, 2012 Pessoal, Estou fazendo um carrinho de compras simples. O codigo vai bem, popula o carrinho, faz as contas. Tudo certinho. Acontece que, quando vou sair do carrinho para o formulario de fechamento da compra esta dando o seguinte erro: Fatal error: Can't use function return value in write context in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\php\chinelospuff.com.br\CarrinhoFinal_Conteudo.php on line 42 A linha 42 desse arquivo é a seguinte: ........ <?php if(isset($_GET["acao"]) and $_GET["acao"]=="gravar_pedido") { $_SESSION["MeuCarrinho"] = serialize($_SESSION["MeuCarrinho"]); $_SESSION["MeuCarrinho"] = unserialize($_SESSION["MeuCarrinho"]); var_dump($_SESSION["MeuCarrinho"]); if (!isset($_SESSION("MeuCarrinho"))) //linha 42 { header("Location:carrinho.php"); } else { if ($_SESSION["MeuCarrinho"]->QuantosItens() == 0) { header("Location:carrinho.php"); } } if (!empty($HTTP_POST_VARS["FORM"])) { //Gravando os Dados do Cliente $data = date('Y-m-d'); ........ Cheguei a imprimir a sessão antes da linha e retorna a sessão coms os valores normamente. Onde esta o erro? Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Junho 27, 2012 acho que o problema é o unserialize da linha de cima. você precisa dele mesmo? tentou trabalhar com arrays ? Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Junho 27, 2012 Não. Na Verdade, eu já tinha esse código pronto. Mas como register_globals = On. Desabilitei register_globals e estou corrigindo erros quando este apareceu. Vou postar todo do codigo do arquivo. Quando passa do primeiro bloco if(isset($_GET["acao"]) and $_GET["acao"]=="qual_cep") { .. } Aí da o erro: o link que faz chegar nessa página é: http://localhost/php/chinelospuff.com.br/CarrinhoFinal.php?acao=qual_cep&preco_total=2.2932&peso_medio=1.2 Se eu deletar o codigo todo abaixo do primeiro bloco. aí o primeiro código aparece. <?php print "<pre>"; print_r($_SESSION); print "</pre>"; if(isset($_GET["acao"]) and $_GET["acao"]=="qual_cep") { ?> <FORM METHOD="POST" ACTION="CarrinhoFinal.php?acao=RECEBE_CEP_SERVICO" name="FORM_ENVIA_CEP_SERVICO"> <TABLE width="400px" align="center"> <TR><TH colspan="2" align="center">Não sabe o CEP?<BR />Clique <a href="http://www.buscacep.correios.com.br/servicos/dnec/index.do" target="_blank">aqui</a></TH></TR> <TR> <TH>Informe o CEP para entrega do pedido:</TH> <TD><INPUT TYPE="text" NAME="TCEP" id="TCEP" onkeypress="return mascara(event,this,'##.###-###');" size="10" maxlength="10"></TD> </TR> <TR> <TH>FORMA DE ENVIO:</TH> <TD> <select name="TENVIO"> <option value="40010" selected>SEDEX</option> <option value="41106">PAC</option> </select> </TD> </TR> <TR align="center"> <TD colspan="2"><input type="button" value="Enviar Dados" name="envio_cep_frete" WIDTH="78" HEIGHT="20" style="background-color: rgb(0,111,55); color: rgb(255,255,0)" onClick="CriticaFormulario2()"></TD> </TR> </TABLE> </FORM> <?php } ?> <?php if(isset($_GET["acao"]) and $_GET["acao"]=="gravar_pedido") { $_SESSION["MeuCarrinho"] = serialize($_SESSION["MeuCarrinho"]); $_SESSION["MeuCarrinho"] = unserialize($_SESSION["MeuCarrinho"]); if (!isset($_SESSION("MeuCarrinho"))) { header("Location:carrinho.php"); } else { if ($_SESSION["MeuCarrinho"]->QuantosItens() == 0) { header("Location:carrinho.php"); } } if (!empty($POST["FORM"])) { //Gravando os Dados do Cliente $data = date('Y-m-d'); $TTEL = str_replace("(", "", $_POST["TTEL"]); $TTEL = str_replace(")", "", $TTEL); $TTEL = str_replace("-", "", $TTEL); $TTEL = str_replace(".", "", $TTEL); $TTEL = str_replace(" ", "", $TTEL); $TCEL = str_replace("(", "", $_POST["TCEL"]); $TCEL = str_replace(")", "", $TCEL); $TCEL = str_replace("-", "", $TCEL); $TCEL = str_replace(".", "", $TCEL); $TCEL = str_replace(" ", "", $TCEL); $TCEP = str_replace(".", "", $_POST["TCEP"]); $TCEP = str_replace("-", "", $TCEP); if (strlen($_POST["cpfcnpj"])==11) { $cpf = $cpfcnpj; $cnpj = ""; } else if (strlen($_POST["cpfcnpj"]) ==14) { $cpf = ""; $cnpj = $cpfcnpj; } $conexao->query(" INSERT INTO pedidos_cliente ( Id_Cliente, data, Endereco, Numero, Bairro, CEP, Cidade, Estado, Tel, Cel, PESO_TOTAL, PRECO_TOTAL, Envio, VALOR_FRETE, pgto_tipo, resposta_cartao, atende ) VALUES ( '". $POST["Id_Cliente"] ."', '$data', '$TENDERECO', '". $POST["TNUMERO"] ."', '$TBAIRRO', '$TCEP', '$TCIDADE', '". $POST["TESTADO"] ."', '$TTEL', '$TCEL', '$peso_medio', '$valor_final', '". $POST["TENVIO"] ."', '". $POST["TVALOR_FRETE"] ."', '". $POST["TPGTO"] ."', 'n', 'n' ) ") or die("Não pude conectar1: " . mysql_error()); $_SESSION["MeuCarrinho"]->ultimo_id = mysql_insert_id(); //Gravando no banco de dados os item contidos no carrinho for($i=0;$i<$_SESSION["MeuCarrinho"]->QuantosItens();$i++) { $conexao->query(" INSERT INTO pedidos ( ID_PEDIDO, ID_PRODUTO, QUANTIDADE, preco_uni, semi_total ) VALUES ( '". $_SESSION["MeuCarrinho"]->ultimo_id ."', '". $_SESSION["MeuCarrinho"]->item_codigo[$i] ."', '". $_SESSION["MeuCarrinho"]->item_quantidade[$i] ."', '". $_SESSION["MeuCarrinho"]->ObtemPreco($_SESSION["MeuCarrinho"]->item_codigo[$i]) ."', '". $_SESSION["MeuCarrinho"]->ObtemSubTotalDeUmItem($_SESSION["MeuCarrinho"]->item_codigo[$i],$_SESSION["MeuCarrinho"]->ObtemPreco($_SESSION["MeuCarrinho"]->item_codigo[$i])) ."' ) ") or die("Não pude conectar2: " . mysql_error()); } session_unregister("MeuCarrinho"); echo "<script>document.location='CarrinhoFinal.php?TPGTO=$TPGTO&ID_DO_PEDIDO=".$_SESSION["MeuCarrinho"]->ultimo_id."</script>"; } } ?> <?php if (!isset($_SESSION("MeuCarrinho"))) { if (!isset($SESSAOlogin)) { echo "<script>document.location='loga.php'</script>"; } if(isset($_GET["acao"]) and $_GET["acao"]=="RECEBE_CEP_SERVICO") { $busca = $conexao->query("SELECT id, email, cpf, cnpj, nome, endereco, numero, bairro, cep, cidade, estado, tel, cel FROM clientes where id='$SESSAOlogin'") or die("A consulta falhou: " . mysql_error()); list($id, $email, $cpf, $cnpj, $nome, $endereco, $numero, $bairro, $cep, $cidade, $estado, $tel, $cel) = $busca->fetch_row(); if ($cpf=="") {$cpfcnpj=$cnpj;} if ($cnpj=="") {$cpfcnpj=$cpf;} if (strlen($cpfcnpj)==11) { $cpfcnpj = substr($cpfcnpj, 0, 3).'.'.substr($cpfcnpj, 3, 3).'.'.substr($cpfcnpj, 6, 3).'-'.substr($cpfcnpj, 9, 2); } else if (strlen($cpfcnpj) ==14){ $cpfcnpj = substr($cpfcnpj, 0, 2).'.'.substr($cpfcnpj, 2, 3).'.'.substr($cpfcnpj, 5, 3).'/'.substr($cpfcnpj, 8, 4).'-'.substr($cpfcnpj, 12, 2); } // AQUI ESTOU RECEBENDO O CEP QUE VEM DA ACAO QUAL CEP E LIMPO AS MASCVARAS PARA VALIDAR COM O CEP DO CADASTRO DO CLIENTE $TCEP = str_replace(".", "", $TCEP); $TCEP = str_replace("-", "", $TCEP); // AQUI VBERIFICO SE ELES (OS CEPS DO FORM E DO CADASTRO DO CLIENTE) SÃO IGUAIS. CASO NEGATIVO,. LIMPO O ENDEREÇO, CASO POSITIVO, EXIBO O ENDEREÇO DO CLIENTE COM OPÇÃO DE EDITAR PARA O CASO DE SER UM PRESENTE PARA A MESMA CIDADE. if ($cep!=$TCEP) {$endereco=""; $numero=""; $bairro=""; $cidade=""; $estado="";} //AQUI, FORMATO O CEP, TEL E CEL PARA EXIBIÇÃO $TCEP = substr($TCEP, 0, 2).'.'.substr($TCEP, 2, 3).'-'.substr($TCEP, 5, 3); $tel = '('.substr($tel, 0, 2).')'.substr($tel, 2, 4).'-'.substr($tel, 6, 4); $cel = '('.substr($cel, 0, 2).')'.substr($cel, 2, 4).'-'.substr($cel, 6, 4); include ('frete.php'); } } else { include('conclusao.php'); } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Junho 27, 2012 resolvi aterando para; if (!$_SESSION("MeuCarrinho")) Agora esta dando esse erro: Fatal error: Function name must be a string in C: Ja achei o erro. Estava usando session como funçao: $_SESSION("MeuCarrinho") Erro de digitação. Session é array. Logo: $_SESSION["MeuCarrinho"] Compartilhar este post Link para o post Compartilhar em outros sites