Ir para conteúdo

Arquivado

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

Luccas Gaulia

SESSION não puxa

Recommended Posts

Ola Pessoal,

 

Segue meus códigos, não consigo visualizar porque o SESSION não puxa o meu registro para aparecer o nome no index.php.... tambem futuramente pegar o $id_admin para atualizar cadastro e tudo mais...

 

Acesso pelo login.php (formulário de acesso), ele está entrando corretamente, porém o SESSION não está puxando, não sei porque.

 

index.php

<?php
require_once('conexao.php');

require_once('protect.php');

if (!empty($_POST['logout'])){
  session_destroy();
  header("Location:login.php");
}

?>
Seja Bem Vindo, <?php echo $_SESSION['userName']; ?></br>

protect.php

<?php
if(!isset($_SESSION))
{
   session_start();
}
$_JUVI['paginaLogin'] = "login.php";

if (isset($_SESSION['userEmail']) OR isset($_SESSION['userPassword'])) {

	$id_admin = $_SESSION['userID'];
	$name = $_SESSION['userName'];
	$email = $_SESSION['userEmail'];
	$password = $_SESSION['userPassword'];
	
}
  $sql = "SELECT admin_id, email, password FROM tbl_admins WHERE email = '$email' AND password = '$password' LIMIT 1";
	
  $query = mysql_query($sql) or die(mysql_error());
  
  $result = mysql_num_rows($query);

if($result == 1){

	return true;
}
	
elseif(empty($result)) {
	
	header("Location: ".$_JUVI['paginaLogin']);

	return false;
} 
else{
	return false;
}
// Se o usuário não está logado, manda para página de login.
?>

security.php

<?php

require_once("conexao.php");
if(!isset($_SESSION))
{
   session_start();
}

$_JUVI['validUser'] = true;
$_JUVI['valid'] = true;  
$_JUVI['paginaLogin'] = "login.php?erro";
$_JUVI['caseSensitive'] = false;  

$_SERVER['REQUEST_METHOD'] == 'POST';

$email= (isset($_POST['email'])) ? $_POST['email'] : '';
$password = (isset($_POST['password'])) ? $_POST['password'] : '';
  
function validUser($email, $password) {
  global $_JUVI;

  $cS = ($_JUVI['caseSensitive']) ? 'BINARY' : '';
  $nemail = addslashes($email);
  $npassword= addslashes($password);
	
  $sql = "SELECT admin_id, name, email, password FROM tbl_admins WHERE ".$cS." email = '$nemail' AND ".$cS." password = '$npassword' LIMIT 1";
	
  $query = mysql_query($sql) or die(mysql_error());
  
  $result = mysql_fetch_assoc($query);
	
if (empty($result)) {
		
	header("Location: ".$_JUVI['paginaLogin']);

	return false;
} 
	
else {
    $_SESSION['userID'] = $result['admin_id'];
    $_SESSION['userEmail'] = $result['email']; 
    $_SESSION['userName'] = $result['name']; 
    $_SESSION['userEmail'] = $result['email']; 
    $_SESSION['userPassword'] = $result['password']; 
		
    	if ($_JUVI['valid'] == true) {

			$_SESSION['userID'] = $id_admin;
			$_SESSION['userName'] = $name;
			$_SESSION['userEmail'] = $email;
			$_SESSION['userPassword'] = $password;
		}
    return true;
	
  }
}

/** Função Proteger Sessão */
function protectPage() {
  global $_JUVI;
	if (!isset($_SESSION['userID']) OR !isset($_SESSION['userEmail'])) {

    	visitorExpulsion();
	  
  	} 
	
	elseif (!isset($_SESSION['userID']) OR !isset($_SESSION['userEmail'])) {

    	if ($_JUVI['valid'] == true) {

      		if (!validUser($_SESSION['userEmail'], $_SESSION['userPassword'])) {

        	visitorExpulsion();
      		
			}
    	}
	}
}


/** Função Expulsar */
function visitorExpulsion() {
  global $_JUVI;

	unset($_SESSION['userID'], $_SESSION['userEmail'], $_SESSION['userPassword']);
	
	header("Location: ".$_JUVI['paginaLogin']);
}

?>

validar.php (formulário de login envia para este e direciona para o index.php, este está funcionando corretamente.)

<?php

require_once("security.php");

if ($_SERVER['REQUEST_METHOD'] == 'POST') {

  $email = (isset($_POST['email'])) ? $_POST['email'] : '';
  $password = (isset($_POST['password'])) ? $_POST['password'] : '';

  if (validUser($email, $password) == true) {
   
    header("Location: index.php");
  } else {
    
 	visitorExpulsion();
  }
}
?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde,

Você precisa iniciar a sessão sempre que for setá-la ou pegar dados dela, e sempre deve ser iniciada no começo da página antes de qualquer output. tente assim no seu index.php


<?php
session_start();
require_once('conexao.php');
require_once('protect.php');
if (!$_SESSION['userName']){  
  session_destroy();  
  header("Location:login.php");
} else {
  echo "Seja Bem Vindo, " . $_SESSION['userName']; 
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Guilherme Morete Felix
      Olá,
      Estamos upando arquivos em nossa plataforma via moodle, como base de regra, tais arquivos são em formato pdf.
      Temos como objetivo que o aluno apenas abra e visualize o documento, porém não consiga fazer o download, cópia, impressão ou algo no sentido mencionado.
      Caso não seja possível, uma saída secundária seria permitir a impressão dos arquivos com o cpf do aluno e um termo de compromisso como marca d'água.
      Alguém poderia me relatar se essas alternativas são possíveis, quais são as possibilidades e se alguma pessoa pode ajudar nesse aspecto? Desde já, muito obrigado!
    • Por brunoogm
      Pessoal estou com um código onde tenho uma tabela Comanda e uma Quantidadevendacomanda, e preciso através da mesma pagina php criar a comanda e inserir  valores nas duas...
      Então preciso criar a tabela comanda, em seguida pegar o ID e após isso inserir na tabela Quantidadevendacomanda os seus valores junto com esse ID.
       
      Até ai tudo OK, mas...
       
      Preciso que na segunda vez que essa ação for feita ele verifique se essa comanda já existe e se existir ele apenas use o ID para inserir mais um valor na tabela Quantidadevendacomanda.
       
      E ai surge o problema, no meu código usei uma SESSION para armazenar o ID da tabela comanda e se ele for 0 (Zero) ele cai na condição que cria a comanda nova senão ele apenas usa o ID na outra tabela, então na finalização eu faço com que a SESSION receba 0 novamente e o ciclo continua...
       
      O que acontece é o seguinte, sempre que a SESSION vale zero e eu tento criar a comanda e inserir valor na Quantidadevenda... ele não faz, mas se eu tentar pela segunda vez ele faz certinho
       
      Resumindo, toda vez que a SESSION é 0 ele pula o insert da segunda tabela, mas pega o ID e na proxima vez ele executa como determinado
       
       
      Codigo ::
       
      session_start();
      include_once("php/conexao.php");
      $idPessoa = $_SESSION['id_pessoa'];
      $id_cliente = $_SESSION['id_user']; 
      $cont = $_SESSION['cont'];
      echo $cont;

      if ($cont == 0) {
          
          $insert ="INSERT INTO comanda (CodigoCliente,  CodigoSituacao, ValorTotal) VALUES ('$id_cliente','1', '$codigoprato')";
          $resulta = mysqli_query ($conectar, $insert);
       
          $sql = "SELECT MAX(CodigoComanda) FROM comanda";
                      $resultado_banco = @mysqli_query($conectar, $sql);
                          
                      $inter = mysqli_num_rows ($resultado_banco);
                      if ($inter == 0){
                          echo "Erro";
                      }else {
                          $dados = @mysqli_fetch_array($resultado_banco);
                      }
                          
                      $id_comanda= $dados[0];
                      $_SESSION['cont'] = $id_comanda;
          
      }
      $select = "INSERT INTO quantidadevendacomanda (CodigoComanda, CodigoPrato , CodigoCliente, Quantidade,  Preco) VALUES ('$cont','$codigoprato', '$idPessoa','$quantidade', '$valor')";
      $resultado = @mysqli_query($conectar, $select);
       
       
      Na outra tabela tenho um UPDATE referente a outra coisa e o 
       
      $_SESSION['cont'] = 0;
       
      assim quando ele voltar ele cai na condição...
       
      Alguma dica de como fazer isso funcionar???
       

       
    • Por Rafael Motta
      Boa tarde, estou tentando entender como faço para manter o valor do "Tamanho" na minha $_SESSION... no carrinho de compras... toda vez que insiro um produto o tamanho muda junto pelo valor do ultimo inserido... seguem os codigos, caso alguem saiba... Obrigado!
       
       
      carrinho.php
      <?php session_start(); if(!isset($_SESSION['carrinho'])){ $_SESSION['carrinho'] = array(); } //adiciona produto if(isset($_GET['acao'])){ //ADICIONAR CARRINHO if($_GET['acao'] == 'add'){ $id = intval($_GET['id']); $tam = $_POST['tam']; if(!isset($_SESSION['carrinho'][$id])){ $_SESSION['carrinho'][$id] = 1; } else { $_SESSION['carrinho'][$id] += 1; } } //REMOVER CARRINHO if($_GET['acao'] == 'del'){ $id = intval($_GET['id']); if(isset($_SESSION['carrinho'][$id])){ unset($_SESSION['carrinho'][$id]); } } //ALTERAR QUANTIDADE if($_GET['acao'] == 'up'){ if(is_array($_POST['prod'])){ foreach($_POST['prod'] as $id => $qtd){ $id = intval($id); $qtd = intval($qtd); if(!empty($qtd) || $qtd <> 0){ $_SESSION['carrinho'][$id] = $qtd; }else{ unset($_SESSION['carrinho'][$id]); } } } } } ?> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Pedidos</title> <link href="css/bootstrap.min.css" rel="stylesheet"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> <title>Carrinho</title> <style> #interna{ text-align: center; } </style> </head> <body> <div class="col-md-12"> <table class="table table-striped" border="1px" width=300 height=100 bgcolor="#d9d9d9"> <caption>Carrinho de Compras</caption> <thead> <tr> <th>Produto</th> <th>Quantidade</th> <th>Preço</th> <th>SubTotal</th> <th>Remover</th> </tr> </thead> <form action="?acao=up" method="post"> <tfoot> <tr> <td colspan="5"><input type="submit" value="Atualizar Carrinho" /></td> </tr> <td colspan="5"><a href="index.php">Continuar Comprando</a></td> </tfoot> <tbody> <?php if(count($_SESSION['carrinho']) == 0){ echo '<tr> <td colspan="5">Não há produto no carrinho</td> </tr>'; }else{ require("conexao.php"); $total = 0; foreach($_SESSION['carrinho'] as $id => $qtd){ $pdo= conecta(); $resultado = $pdo ->prepare("SELECT max(ID_LISTA)AS ID FROM listas_preco where cod_cliente = 1"); $resultado->execute(); $lista = $resultado->fetch(PDO::FETCH_ASSOC); $result = $pdo ->prepare("SELECT PRODUTOS.CODIGO, PRODUTOS.DESCRICAO AS DESC, listas_itens.PRECO FROM listas_itens inner join produtos on (listas_itens.cod_produto = produtos.codigo) inner join grupos_produto on (produtos.cod_grupo = grupos_produto.codigo) WHERE PRODUTOS.CODIGO=".$id." and (listas_itens.id_lista = '".$lista['ID']."')"); $result->execute(); $ln = $result->fetch(PDO::FETCH_ASSOC); $nome = $ln['DESC']; $preco = number_format($ln['PRECO'], 2, ',', '.'); $sub = number_format($ln['PRECO'] * $qtd, 2, ',', '.'); $total += $ln['PRECO'] * $qtd; echo '<tr height=70>' . '<td><p>'. $nome .'</p><br/> Tamanho: '. $tam .'</td></br> <td><input type="text" size="3" name="prod['.$id.']" value="'.$qtd.'" /></td> <td>R$ '.$preco.'</td> <td>R$ '.$sub.'</td> <td><a href="?acao=del&id='.$id.'">Remove</a></td> </tr>'; } $total = number_format($total, 2, ',', '.'); echo '<tr> <td colspan="4">Total</td> <td>R$ '.$total.'</td> </tr>'; } ?> </tbody> </form> </table> </div> </body> </html>  
    • Por BrunoBit
      Fala rapaziada, tudo joia por aí?
      Queria saber, de acordo com a experiência de vocês, como proteger um arquivo .zip dentro do servidor pra evitar que terceiros realize o download dele? Qual melhor caminho pra fazer isso? Visto que eu preciso me comunicar com esse arquivo zip via PHP pra enviar ele pra outra parte do servidor (servidor meu dentro da mesma hospedagem) pra fazer a extração dele, essa parte ta resolvida, minha duvida mesmo é como evitar que alguém pesquisa por esse arquivo .zip e ache a URL dele e efetue o download.
       
      Desde já agradeço pessoal, abração e fiquem com Deus.
    • Por Lizeb
      Pessoal,
       
      Sou novato em desenvolvimento php...
       
      Estou com um problema que é o seguinte:
       
      tive a necessidade de criar uma nova aplicação php no servidor,  já tinha uma outra (também desenvolvida por mim), apenas direcionei para outra porta...
       
      vou chamar de aplicação 1 e aplicação 2...
       
      realizo meu login na aplicação 1, até ai normal...
       
      mas quando preciso ir para a aplicação 2 acredito que tenha um conflito com a $_SESSION, pois ela ja foi guardada no login realizado anteriormente na aplicação 1...
       
      então tenho problemas de depois de ter logado em qualquer aplicação, conseguir acessar áreas da outra aplicação sem ter autenticado nela.... acredito que seja devido as $_SESSION terem os mesmos nomes, como as duas aplicações é eu quem esta desenvolvento, por habito tenho meus padroes... $_SESSION["login"], $_SESSION["id_perfil"] e por ai vai....
       
      Há a possibilidade de a $_SESSION de uma não interferir na outra? ou estando no mesmo servidor vai acontecer isso mesmo?
       
      atualmente as aplicações estao assim: xx.xx.x.xx:80 e xx.xx.x.xx:8083
×

Informação importante

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