Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Carcleo

[Resolvido] Fatal error: Can't use function return value in w

Recommended Posts

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.