Ir para conteúdo

POWERED BY:

Arquivado

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

elitediego

[Resolvido] session

Recommended Posts

Olá amigos estou tendo a seguinte dificuldade preciso capturar o $_SESSION["nome"] para poder comparar se o usuário que iniciou a seção é um administrador ou um operador comun e aí caso seja administrador terá alguns acessos a mais.

<?php include "conexao_cliente.php";

//Criamos o comando que efetua a busca do banco
$selec = "SELECT * FROM usuarios where operador='admin'";

	$use = mysql_query($selec);

	$num = mysql_fetch_array($use);


		//Retorna os dados do banco
		while($ope = mysql_fetch_array($use))
		{
			$ide 	= $ope["id"];
			$nomes 	= $ope["nome"];
			$log    = $ope["nome"];
			$operador 	= $ope["operador"];
		}

		if(($_SESSION["nome"])==$nomes)
		{
			$consulta="SELECT sum( valor ) as $valor FROM clientes";

			$soma=mysql_query($consulta);

			while($total = mysql_fetch_array($soma))
			{
				echo "Total de valores são R$   <b>".$total['valor']."</b>";
			}
		}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Depende da tua modelagem do banco de dados, mas caso o nome do usuario seja operador/administrador, você pode fazer o seguinte:

 

if($_SESSION["nome"] == "administrador")
{
echo "Insira aqui as opcoes há mais para o administrador
}
elseif($_SESSION["nome"] == "operador")
{
echo "Codigos p/ o usuario com nivel de operador
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

no meu caso a minha tabela está assim: id, nome, login,senha e operador , aonde eu tnho no campo operador dois tipos de operadores o admin e o user

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entao faça assim é so alterar os nomes da comparacao

 

if($_SESSION["nome"] == "admin")
{
echo "Insira aqui as opcoes há mais para o usuario (admin)";
}
elseif($_SESSION["nome"] == "user")
{
echo "Codigos p/ o usuario com nivel normal(user)";
}

 

:thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

está dando o seguinte erro:

Notice: Undefined variable: _SESSION in C:\Documents and Settings\diego\Desktop\webserver_apache_php_mysql\root\netway\teste.php on line 35

 

eu acredito que esse erro tá dando porque eu não to sabendo capturar o session..

Compartilhar este post


Link para o post
Compartilhar em outros sites

você está colocando session_start(); no começo do seu código ?! E o arquivo $_SESSION["nome"] também existe?

 

Da um echo $_SESSION["nome"] e veja se você esta criando a session corretamente.

 

:thumbsup:

 

Posta o teu codigo

Compartilhar este post


Link para o post
Compartilhar em outros sites

existe sim mas está em arquivo separado veja:

 

<?php
include "conexao_cliente.php"; //inclusão para conexão com a base de dados

// Recebemos os dados digitados pelo usuário
$login = $_POST['login'];
$senha = $_POST['senha'];

//Estabelecemos uma conexão com o banco de dados
//mysql_connect("Nome ou IP do servidor", "Usuario", "Senha");
$conn = mysql_connect("localhost", "root", "***") or die("Impossivel conectar");
//caso a conexão seja estabelecida corretamente seleciona o banco de dados a ser usado

if($conn)
{
	mysql_select_db("artigos", $conn);
}

//Criamos o comando que efetua a busca do banco
$sql = "SELECT id, nome , operador FROM usuarios WHERE login = '$login' AND senha = '$senha'";
	//Executamos o comando
	$rs = mysql_query($sql, $conn);
	//Retornamos o numero de linhas afetadas
	$num = mysql_num_rows($rs);
	//Verificams se alguma linha foi afetada, caso sim retornamos suas informações
	if($num > 0)
	{
		//Retorna os dados do banco
		$rst = mysql_fetch_array($rs);
			$id 	= $rst["id"];
			$nome 	= $rst["nome"];
			$operador 	= $rst["operador"];

//Inicia a sessão
session_start();
//Registra os dados do usuário na sessão
$_SESSION["id"]		= $id;
$_SESSION["nome"]	= $nome;
$_SESSION["login"]	= $login;
$_SESSION["operador"]	= $operador;

//Encerra a conexão com o banco
			mysql_close($conn);
			//Redireciona para o index
			header("Location:index.php");
	}
else
{
	//Encerra a conexão com o banco
	mysql_close($conn);
	//Caso nenhuma linha seja retornada emite o alerta e retorna
	echo "<b>Nenhum usuário foi encontrado com os dados informados...ornando</b>";
	echo "<meta http-equiv='refresh' content='3;URL=login.php'>";
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

var_dump($_SESSION['nome']);

 

 

o var_dump, está dando NULL eu já tinha usado ele antes e tambem ja tinha feito o if que me disseram antes mas mesmo assim esta dando erro

Compartilhar este post


Link para o post
Compartilhar em outros sites

a variavel

$rst

não existe .. , no caso ela não seria o mysql_fetch_array ??

 

 

Desculpe mas eu sou iniciante e eu não entendi a pergunta , pelo que eu sei eu posso declarar a variável $rst como um mysql_fetch_array e está funcionando.

 

Qual foi o resultado do var_dump ?

 

o resultado foi NULL

 

Certo e o arquivo que você está fazendo a verificacao se o usuario é admin ou user ? ? ? ?

 

 

o arquivo completo é esse:

<?
include "conexao_cliente.php"; //inclusão para conexão com a base de dados
error_reporting(0);

$ses=$_POST[$_SESSION];	

$dado5=$_POST['dado5'];					
$dado4=$_POST['dado4'];						
$dado3=$_POST['dado3'];						
$campo3=$_POST['campo3'];						
$dado2=$_POST['dado2'];	
$dado1=$_POST['dado1'];		
$campoc=$_POST['campoc'];
$campo1=$_POST['campo1'];
$ordem=$_POST['ordem'];			
$fields = Array( 'id' => 'Código', 'cpf_cnpj' => 'CPF/CNPJ', 'nome' => 'Nome', 'endereco' => 'Endereço',
	'ip'=> 'Ip', 'tel' => 'Tel', 'cel' => 'Cel', 'data_ativ' => 'Data de ativação',	'situacao' => 'Situação',
	'valor' => 'Valor',	'email1' => 'E-mail 1',	'email2' => 'E-mail 2',	'obs' => 'Observação','gateway' => 'Gateway',
	'mascara' => 'Mascara',	'dns1' => 'Dns1', 'dns2' => 'Dns2',	'velocidade' => 'Velocidade','boleto' => 'Boleto',
	'data_vencimento' => 'Data do vencimento',);	

$ordenacao= "order by $ordem";
$ordenar="";

	$ths = '';
        if( is_array($_POST['campos']) )
        	{
			foreach($_POST['campos'] as $valor)
				{
					$ths .= '<th>'.$fields[ $valor ].'</th>'; 
					$ordenar .=$valor.",";
				}
			$campos = substr($ordenar,0,-1);
		}	
		else 
		{
			$campos = "*";
		}
		echo "<table border='1'><tr>"; 
		echo $ths.'</tr>'; 

$sql= "select $campos from clientes where ";

/*a consulta abaixo é realizada mediante ao checkbox selecionado e o campo de texto não vazio,
ficando a escolha do usuário usar a combobox para selecionar código ou nome por padrão será realizado código.*/ 	
if(!empty($_POST['op1']))
{
	$sql=$sql. "$campo1 like '$dado1%'".$ordenacao;
}		

/*a consulta abaixo é realizada mediante ao checkbox selecionado,ficando a escolha do usuário
  usar a combobox para selecionar o boleto.*/
if(!empty($_POST['opc']))
{
	$sql=$sql. "contrato LIKE '$campoc'".$ordenacao;
}				

/*a consulta abaixo é realizada mediante ao checkbox selecionado,ficando a escolha do usuário
 usar a combobox para selecionar a situação.*/
if(!empty($_POST['op2']))
{
	$sql=$sql. "situacao='$dado2'".$ordenacao;
}				

//consulta multipla
if(!empty($_POST['op3']))
{
	$sql=$sql. "$campo3 like '$dado3%'".$ordenacao;
}

//A consulta abaixo é feita por data de ativação
if(!empty($_POST['campo4']))
{

	$sql=$sql . " date_format(data_do_artigo, '%d/%m/%Y') as data_ativ >= '$dado4' AND `data_ativ` <= '$dado5'".$ordenacao;                    
}

$resultado=mysql_query($sql);
$cont=0;


     while($registros = mysql_fetch_array($resultado))
	{
		$cont= $cont+1;
		echo "<tr>
					<td>
						<a href= 'con_cli_det.php?id=".$registros['id']."'>
							".$registros['id']."
						</a>
					</td>
					<td>
						".$registros['nome']."
					</td>
					<td>
						".$registros['tel']."
					</td>
					<td>
						".$registros['cel']."
					</td>
					<td>
						".$registros['data_ativ']."
					</td>
					<td>
						".$registros['situacao']."
					</td>
					<td>
						".$registros['valor']."
					</td>
					<td>
						".$registros['cpf_cnpj']."
					</td>
					<td>
						".$registros['endereco']."
					</td>
					<td>
						".$registros['ip']."
					</td>
					<td>
						".$registros['email1']."
					</td>
					<td>
						".$registros['email2']."
					</td>
					<td>
						".$registros['obs']."
					</td>
					<td>
						".$registros['gateway']."
					</td>
					<td>
						".$registros['mascara']."
					</td>
					<td>
						".$registros['dns1']."
					</td>
					<td>
						".$registros['dns2']."
					</td>
					<td>
						".$registros['velocidade']."
					</td>
					<td>
						".$registros['boleto']."
					</td>
					<td>
						".$registros['data_vencimento']."
					</td>
					<td>
						".$registros['operador']."
					</td>
				</tr>";
	}
	echo "</table>";

	if (isset( $_REQUEST [ '_SESSION' ])) die( "Get lost Muppet!" ); 
		{		

			$usu == $_SESSION["nome"];
		echo "teste".$usu["nome"] ;
	}


if($cont>0) //and ($operador==admin)
{
	echo "Foram encontradas <b>".$cont." </b>clientes";	
	echo"&nbsp- ";
}

//Criamos o comando que efetua a busca do banco
$selec = "SELECT * FROM usuarios where operador='admin'";
	//Executamos o comando
	$use = mysql_query($selec);
	//Retornamos o numero de linhas afetadas
	$num = mysql_fetch_array($use);
	//Verificams se alguma linha foi afetada, caso sim retornamos suas informações  \\\$_SESSION["operador"]

		//Retorna os dados do banco
		while($ope = mysql_fetch_array($use))
		{
			$ide 	= $ope["id"];
			$nomes 	= $ope["nome"];
			$log    = $ope["nome"];
			$operador 	= $ope["operador"];
		}

		if(($_SESSION["nome"])==$nomes)
		{
			$consulta="SELECT sum( valor ) as $valor FROM clientes";

			$soma=mysql_query($consulta);

			while($total = mysql_fetch_array($soma))
			{
				echo "Total de valores são R$   <b>".$total['valor']."</b>";
			}
		}
?>
</table>
<src=" con_cli2.php">

Compartilhar este post


Link para o post
Compartilhar em outros sites

E você inseriu aquele codigo que te passei em que parte do codigo?

 

Verifique este trecho, o que você esta fazendo aqui

 

if (isset( $_REQUEST [ '_SESSION' ])) die( "Get lost Muppet!" ); 
                       {               

                               $usu == $_SESSION["nome"];
                       echo "teste".$usu["nome"] ;
               }

Compartilhar este post


Link para o post
Compartilhar em outros sites

E você inseriu aquele codigo que te passei em que parte do codigo?

 

Verifique este trecho, o que você esta fazendo aqui

 

if (isset( $_REQUEST [ '_SESSION' ])) die( "Get lost Muppet!" ); 
                       {               

                               $usu == $_SESSION["nome"];
                       echo "teste".$usu["nome"] ;
               }

 

 

 

eu inseri o o trecho q você me passou no lugar desse que você observou e agora não ta mostrando erro e nen aparecendo nada..

Compartilhar este post


Link para o post
Compartilhar em outros sites

troque <? , pra <?php

 

 

troquei e agora está me retornando a consulta mais não está entrando no if que tu me passou

 

meu amigo andrey

No caso a minha dúvida maior é a seguinte eu tenho a minha seção iniciada a partiti de um arquivo q eu chamei de auth.php e no arquivo con_cli2.php eu quero usar a variavel $_SESSION o que eu sei é que essa variavel é global mas o que eu não sei é como pegfar ela se você puder tem como me esclarecer? valew!

Compartilhar este post


Link para o post
Compartilhar em outros sites

meus caros amigos eu não sie aonde esta o erro mais infelizmente ainda não esata funcionando direito o operador admin deve ter acesso a soma de valor feita pela query SELECT sum( valor ) as valor FROM clientes"; e o resultado disto não esta acontecendo o restante do codigo funciona.

por favor peaço que se algum puder me ajude!

Compartilhar este post


Link para o post
Compartilhar em outros sites

valew a todos q me ajudaram principalmente o andrey, o erro era que eu não estava colocando o session start() no inicio do script e tambem no meu select sum(valor) as $valor, eu retirei o $ da variavel $valor e funcionou tudo perfeitamente. Obrigado a todos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

É so você por no começo do codigo

session_start();

 

e depois usar a variavel

$_SESSION['nomeDAsessao']

 

Não foi eu que falei pra por session_start no topo do codigo rsrs , você se confundiu :D

 

Legal que resolveu ^_^

 

Abraços , Boa Sorte

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.