Ir para conteúdo

Arquivado

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

Bruno Ferreira da Silva

Problemas com SESSION!

Recommended Posts

Estou desenvolvendo uma loja virtual do ZERO, então surgiu o seguinte problema:

 

Preenchi meu carrinho de compras, até ai Ok,

Após isso, farei login com usuario e senha, então o carrinho de compras fica vazio!!

Ou seja, tem algo acontecendo fazendo com oque a $_SESSION['meu_carrinho'] seja destruida após o login.

 

 

* LEMBRANDO Q ESTOU EM APRENDIZADO EM PHP.... ENTÃO SE TIVER CRITICAS É BEM VINDO...

ME AJUDE TBM COM SEGURAÇA DO SISTEMA SE POSSIVEL...

 

CODIGOS:

 

Methodo para Adicionar um produto ao carrinho:

function addProdCarrinho(){	
					
if($this->_produto == true){
							
if($_SESSION['cores_ajax']['permalink_ajax'] == $this->_produto->permalink ){									
   $cor = $_SESSION['cores_ajax']['img_cor_ajax'];
}
						
						
if( empty( $_SESSION['carrinho'] )){									
			$this->_carrinho = array(
			"id"      => $this->_produto->id,
			"produto" => $this->_produto->produto,
			"imagem"  => $this->_produto->imagem,
			"preco"   => $this->_produto->preco,
			"cor"     => $cor,
			"permalink" => $this->_produto->permalink,
			"cat_permalink" => $this->_cat->permalink,
			"qtd"     => 1
		);
							
		$_SESSION['carrinho'][] = $this->_carrinho;
	}else{
							
		$flag = false;
							
		foreach($_SESSION['carrinho'] as $car){

		//VERIFICA SE EXISTE O MESMO PRODUTO NO CARRINHO
		if( !in_array( $this->_produto->id, $car) )
		   $flag = true;
		else
		   $flag = false;									
								
		//CASO EXISTA / FORÇA O LAÇO PARAR

		if($flag==false)
		  break;
		}
							
	//SE NÃO EXISTIR O PRODUTO,  ENTÃO É  ADICIONADO AO CARRINHO
	if($flag==true){
								
	$this->_carrinho = array(
	    "id"        => $this->_produto->id,
	    "produto"   => $this->_produto->produto,											
	    "imagem"    => $this->_produto->imagem,
	    "preco"     => $this->_produto->preco,
	    "cor"     => $cor,
	    "permalink" => $this->_produto->permalink,
	    "cat_permalink" => $this->_cat->permalink,
	    "qtd"       => 1
	);
						    
	array_push($_SESSION['carrinho'],$this->_carrinho);
								
	}
							
	   }
						
						
		}					
			return $_SESSION['carrinho'];
	}

CÓDIGO PARA FAZER LOGIN do CLIENTE PARA ACESSAR O PAINEL

function __construct(){						
										
	$this->dadosLogin();			
	$this->validarLogin();	
	$this->setUsuario();
	$this->listUsuario();
	$this->setVerifica();					
					
}
			
			
private function dadosLogin(){				
					
		$_model = new model();
	        if(!empty($_POST['senha_px']) && !empty($_POST['email_px'])){							
		$_SESSION['login']['senha'] = md5 ( base64_decode( $_model->ant( strip_tags( $_POST['senha_px'] ))));
		$_SESSION['login']['login_user'] = $_model->ant( strip_tags( $_POST['email_px'] ));							
		}							
							
	}
						
	private function validarLogin(){										
	        $_model = new model();										
	        $this->_contarUsuario = $_model->contarLinha("id","clientes","cpf='". $_SESSION['login']['login_user'] ."'					
	OR usuario = '". $_SESSION['login']['login_user'] ."' AND senha='" . $_SESSION['login']['senha'] . "' AND status=1");												
	}//FIM METHODO validarLogin
				
				
			
	private function setUsuario(){
		$_model = new model();
					
		if($this->_contarUsuario == 1){																
						
		$this->_usuario = $_model->fetch("id, nome_cliente, cpf, email, data_nascimento, usuario, senha, tel_fixo, tel_celular","clientes","cpf='". $_SESSION['login']['login_user'] ."'					
		OR usuario = '". $_SESSION['login']['login_user'] ."' AND senha='" . $_SESSION['login']['senha'] . "' AND status=1");											
						
						
		}else{						
			return false;
			}
					 
							
	}//FIM METHODO setUsuario
			
	private function listUsuario (){
										
			if($this->_usuario == true){
										
			$_SESSION['user'] = array(
				"id"              => $this->_usuario->id,
				"nome"            => $this->_usuario->nome_cliente,
				"cpf"             => $this->_usuario->cpf,
				"email"           => $this->_usuario->email,
				"data_nascimento" => $this->_usuario->nascimento,
				"usuario"         => $this->_usuario->usuario,
				"celular"         => $this->_usuario->tel_celular,
				"fixo"            => $this->_usuario->tel_fixo,
				"remoter"         => $_SERVER['SERVER_ADDR']
			);							
		}
			
}//FIM METHODO listUsuario
			
public function setVerifica(){
		if($_SESSION['user']){
				if($_SESSION['user']['remoter'] == $_SERVER['SERVER_ADDR']){
					return true;
				}						
					else{
					 unset($_SESSION['user']);
					}
					 }
				}

TEM OS CONTROLLERS PRA CHAMAR ESSES MODELS... NADA DE MAIS ... SÓ N ESTOU ENTENDENDO PQ QUANDO FAÇO O LOGIN A SESSION DO CARRINHO ESTÁ SENDO DESTRUIDA... TODA AJUDA É BEM VINDA...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo,

 

Ao analisar o código aqui, vi que você construiu a $_SESSION['carrinho'].

 

Modifique ela para $_SESSION['meu_carrinho'] e veja se dá certo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Fala galera.
      Espero que todos estejam bem.
      Seguinte: Tenho um arquivo xml onde alguns campos estão com : (dois pontos), como o exemplo abaixo:
       
      <item>
      <title>
      d sa dsad sad sadasdas
      </title>
      <link>
      dsadas dsa sad asd as dsada
      </link>
      <pubDate>sadasdasdsa as</pubDate>
      <dc:creator>
      d sad sad sa ad as das
      </dc:creator>
      </item>
       
      Meu código:
       
      $link = "noticias.xml"; 
      $xml = simplexml_load_file($link); 
      foreach($xml -> channel as $ite) {     
           $titulo = $ite -> item->title;
           $urltitulo = $ite -> item->link;
           print $urltitulo = $ite -> item->dc:creator;
      } //fim do foreach
      ?>
       
      Esse campo dc:creator eu não consigo ler. Como faço?
       
      Agradeço quem puder me ajudar.
       
      Abs
       
       
    • Por First
      Olá a todos!
       
      Eu estou criando um sistema do zero mas estou encontnrando algumas dificuldades e não estou sabendo resolver, então vim recorrer ajuda de vocês.
      Aqui está todo o meu código: https://github.com/PauloJagata/aprendizado/
       
      Eu fiz um sistema de rotas mas só mostra o conteúdo da '/' não sei porque, quando eu tento acessar o register nada muda.
      E eu também quero que se não estiver liberado na rota mostra o erro de 404, mas quando eu tento acessar um link inválido, nada acontece.
      Alguém pode me ajudar com isso? E se tiver algumas sugestão para melhoria do código também estou aceitando.
       
       
      Desde já, obrigado.
    • Por landerbadi
      Olá pessoal, boa tarde
       
      Tenho uma tabela chamada "produtos" com os seguintes campos (id, produto) e outra tabela chamada "itens" com os seguintes campos (id, prod_01, prod_02, prod_03, prod_04).
       
      Na tabela produtos eu tenho cadastrado os seguintes produtos: laranja, maçã, uva, goiaba, arroz, feijão, macarrão, etc.
       
      Na tabela itens eu tenho cadastrado os itens da seguinte maneira:
       
      1, laranja, uva, arroz, feijão;
      2, maçã, macarrão, goiaba, uva;
      3, arroz, feijão, maçã, azeite
       
      Meu problema é o seguinte: 
      Eu escolho um produto da tabela "produtos", por exemplo "uva".  Preciso fazer uma consulta na tabela "itens" para ser listado todos os registros que contenham o produto "uva" e que todos os demais produtos estejam cadastrados na tabela "produtos".
       
      No exemplo acima seria listado apenas dois registros, pois o terceiro registro não contém o produto "uva". 
       
      Alguém pode me ajudar? Pois estou quebrando a cabeça a vários dias e não consigo achar uma solução.
    • Por landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, plural, ativo. Nela tem cadastrado vários itens e seu respectivo plural. No campo ativo eu coloco a letra "S" para informar que esta palavra está ativa no sistema. Por exemplo: 1, casa, casas, S 2, mesa, mesas, S 3, cama, camas, S 4, moto, motos, S 5, rádio, rádios O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "variações" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, camas, moto 2, mesas, casas, radio 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela variações da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "casa". Preciso fazer com que o php me liste todos os registros da tabela "variações" que contenham a palavra "casa". Porém se tiver algum registro com a palavra "casas" também tem que ser listado. Neste caso ele irá encontrar dois registros. Agora eu preciso que o php verifique os demais itens e faça a listagem apenas dos item que estão ativos (que contenham um "S" no campo ativo. Neste caso ele irá encontrar apenas um registro, pois o segundo registro contém a palavra "rádio". E "rádio" não está ativo na tabela itens. Como faço isso?
    • Por First
      Olá a todos!
       
      Quando eu tento fazer o login me mostra esse erro "Could not log you in."; Alguém sabe me ajudar a resolver esse problema no meu código?
      <?php require_once("core/init.php"); if (Input::exists()) { if (Token::check(Input::get("token"))) { $validate = new Validate(); $validation = $validate->check($_POST, array( "username" => array("required" => true), "password" => array("required" => true) )); if ($validation->passed()) { $user = new User(); $remember = (Input::get("remember")) === "on" ? true : false; $login = $user->login(Input::get("username"), Input::get("password"), $remember); if ($login) { Session::flash("home", "Welcome back!"); Redirect::to("index.php"); } else { echo "Could not log you in."; } } else { foreach ($validation->errors() as $error) { echo $error."<BR>"; } } } } ?> <form action="" method="POST"> <div class="field"> <label for="username">Username</label> <input type="text" name="username" id="username"> </div> <div class="field"> <label for="password">Password</label> <input type="password" name="password" id="password"> </div> <div class="field"> <label for="remember"> <input type="checkbox" name="remember" id="remember"> Remember me </label> </div> <input type="hidden" name="token" value="<?php echo Token::generate(); ?>"> <input type="submit" value="Log in"> </form>  
       
      Desde já obrigado.
×

Informação importante

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