Ir para conteúdo

POWERED BY:

Arquivado

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

eronventer

[Resolvido] Verificar valor dentro de um array

Recommended Posts

Ae pessoal,

 

Seguinte, no meu banco cada usuário cadastrado recebe uma lista de ações na qual ele irá ter acesso.

Eu gravo as ações separadas por uma barra vertical "|" e para verificar depois eu utilizo o script:

 

$acoes = $_SESSION['acoes'];
$separ = explode("|", $acoes);	
$array = array($separ[0], $separ[1], $separ[2]);

if (!array_key_exists($pode, $array))
{
	echo "<script>\n";
	echo "alert('Você não tem permissão para executar esta ação.');\n";
	echo "java script:history.back();\n";
	echo "</script>\n";
	die;
}

No caso $_SESSION['acoes'] recebe valor: "Inserir | Alterar | Excluir" em seguida

transformo em array o mesmo para executar a verificação, porém sempre me retorna

falso mesmo que o item ($pode) tenha no array....

 

Onde estou errando?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como eu havia falado, a $_SESSION['acoes'] retorna: "Inserir | Alterar | Excluir", sem as aspas é claro...

Dei o print na tela e me retornou certinho....porém na hora de verificar não rola....

 

Ainda dei o print no array $separ e no $pode e me retornou os valores certos:

 

"$separ" = Array ( [0] => Inserir [1] => Alterar [2] => Excluir )

"$pode" = Inserir

Compartilhar este post


Link para o post
Compartilhar em outros sites

deste modo não vai dar certo, veja assim:

 

$acoes = $_SESSION['acoes'];
$separ = explode("|", $acoes);	
$array = array($separ[0], $separ[1], $separ[2])

if (!array_search($pode, $array))
{
	echo "<script>\n";
	echo "alert('Você não tem permissão para executar esta ação.');\n";
	echo "java script:history.back();\n";
	echo "</script>\n";
	die;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

É estranho porque até mesmo com in_array ele me retorna falso...

Eu ja havia tentado antes

Cara dá certo sim... Veja esse exemplo tipo eu precisava buscar no banco uma string e verificar se ela já havia sido nserida no banco pra não haver duplicações...

				#recebe as informações do banco
				$ds = $classe->selectTipoParametro('');
				
#crio
				  for ($i = 0; $i < count($ds); $i++){
						  $dstp .= $ds_tipo_parametro[$i]['ds']. ",";
				  }
		$dstArr = explode(",", $dstp);

		if(in_array(strtoupper($_POST['txtDs']), $dstArr)){
							$classe->setMsg("TIPO DE PARÂMETRO JÁ CADASTRADO");
							Msg::setError($classe->getMsg());
							Msg::displayInHtml('frmTipo.php');
		}else{ 
			"";
		}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Descobri porque não estava dando certo, era devido o espaço entre os itens....

Deixei eles colados "Inserir|Alterar|Excluir" e funcionou =/

Compartilhar este post


Link para o post
Compartilhar em outros sites

É estranho porque até mesmo com in_array ele me retorna falso...

Eu ja havia tentado antes

Cara dá certo sim... Veja esse exemplo tipo eu precisava buscar no banco uma string e verificar se ela já havia sido nserida no banco pra não haver duplicações...

				#recebe as informações do banco
				$ds = $classe->selectTipoParametro('');
				
#crio
				  for ($i = 0; $i < count($ds); $i++){
						  $dstp .= $ds_tipo_parametro[$i]['ds']. ",";
				  }
		$dstArr = explode(",", $dstp);

		if(in_array(strtoupper($_POST['txtDs']), $dstArr)){
							$classe->setMsg("TIPO DE PARÂMETRO JÁ CADASTRADO");
							Msg::setError($classe->getMsg());
							Msg::displayInHtml('frmTipo.php');
		}else{ 
			"";
		}

Pra que esse tamanho de código :blink:

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Pra que esse tamanho de código :blink:

 

hehehe. é que eu peguei um exemplo que eu tinha pronto de um sistema que estamos desenvolvendo aqui onde trabalho... e existem umas classes para exibirem erros, etc. botei somente como exemplo... mas tem como otimizar? você poderia me ajudar... trabalho com php mais ou menos 1 ano. ainda tenho muito que caminhar... http://forum.imasters.com.br/public/style_emoticons/default/grin.gif Se puder me dar alguma dica pra otimizar meu código serei grato.

 

Obrigado, Rodrigo César

 

p.s.: Administrador... desculpe, mas apague meus posts duplicados... foi sem querer :blink: http://forum.imasters.com.br/public/style_emoticons/default/grin.gif

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.