Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal do fórum.
Peguei um sistema onde foi criado uma Classe chamada "Greco.class.php",onde nesta Classe existe um função que tem a condição "foreach":
<?php
class Greco extends GrecoConecta
{
var $local = null;
function setLocal($l)
{
$this->local = $l;
}
function getLocal()
{
return $this->local;
}
function getConnection()
{
return Conecta::open("mysql");
}
var $acessoLocal = null;
function getPerfilAmbiente()
{
$sessao = new GrecoAcesso();
$this->acessoLocal = $sessao->perfilLocal;
return $sessao->perfilLocal;
}
var $getSessaoLocalSql = NULL;
function getSessaoLocal()
{
$sql = "
SELECT DISTINCT
usuario_gpacesso.id_filial,
gpacesso_acao.id_acesso,
gpacesso_acao.id_acao,
filial.descricao
FROM
usuario_gpacesso,
grupo_acesso,
gpacesso_acao,
situacao,
filial
WHERE
$_SESSION[id_usuario]=usuario_gpacesso.id_usuario
and usuario_gpacesso.id_grupoacesso=grupo_acesso.id_grupoacesso
and filial.id_filial=usuario_gpacesso.id_filial
and grupo_acesso.id_grupoacesso=gpacesso_acao.id_grupoacesso
and id_acesso = ".$this->getLocalID()."
ORDER BY
usuario_gpacesso.id_filial,gpacesso_acao.id_acesso,gpacesso_acao.id_acao";
/* $this->getSessaoLocalSql = $sql;
$resultado = Conecta::open("mysql")->query($sql)->fetchAll();
if ($resultado)
{
$this->acessoLocal = NULL;
foreach ($resultado as $chave => $valor){
$this->acessoLocal[] = array("id_acesso"=>$valor['id_acesso'],"descricao"=>$valor['descricao'],"id_acao"=>$valor['id_acao']);
}
}else
{
$this->acessoLocal = NULL;
}
return $this->acessoLocal; */
}
function setModes()
{
// foreach($sessaoLocal as $ch => $vl){
// echo $ch . $vl . "<BR>";
// foreach ($vl as $chh => $vll){
// echo $chk . $vll;// }
}
var $getLocalIdSql = NULL;
function getLocalID()
{
if(isset($this->local))
{
$sql = "select * from acesso where url = '$this->local'";
$this->getLocalIdSql = $sql;
$netDb = new Conecta();
$dbCon = $netDb->open("mysql");
$rs = $dbCon->query($sql);
if ($rs)
{
$linha = $rs->fetch(PDO::FETCH_OBJ);
//$this->local = $linha->id_acesso;
return $linha->id_acesso;
}else
{
$this->local = 0;
return 0;
}
}
}
private function __contruct() {
// if ($this->local != NULL) $local = new Conecta_funcao();
$loc = $local->GC_getPHP_SELF();
$this->local = $loc;public function setModos($acesso)
{
/seleciona todas as ações do acesso/
$acao = array();
-->foreach($acesso as $acoes)
{
$acao = array_merge($acao,$acoes);
}
/tira as ações que são repetidas/
$acoes = array_unique($acao);
/verifica quais são essas ações/
if(in_array('A',$acoes))
{
$alterar = true;
}
if(in_array('E',$acoes))
{
$excluir = true;
$multi_tarefa = true;
}
if(in_array('P',$acoes))
{
$exportar = true;
}
if(in_array('I',$acoes))
{
$incluir = true;
}
if(in_array('X',$acoes))
{
$executar = true;
}
/*retorna as ações para a página*/
return $acoes =
array
(
"alterar"=>$alterar,
"excluir"=>$excluir,
"exportar"=>$exportar,
"incluir"=>$incluir,
"executar"=>$executar,
"multi_tarefa"=>$multi_tarefa
);
}// Fim da Função
//================================================================================
==========================================//
public function setModosPorFilial($modo,$filial)
{
//----------------------------------------------------------------------------------------------------------------------------//
/verifica se alguma filial foi selecionana pelo usuario/
if($filial != '')
{
if(in_array("A", $modo[$filial]))
{
$alterar = true;
}
if(in_array("E",$modo[$filial]))
{
$excluir = true;
}
if(in_array("P",$modo[$filial]))
{
$exportar = true;
}
if(in_array("I",$modo[$filial]))
{
$incluir = true;
}
if(in_array("X",$modo[$filial]))
{
$executar = true;
}
}// fim do IF
/se houver uma filial selecionada pelo usuario pega as acoes so daquela filial e verifica quais são elas/
else
{
/se o numero de ocorrencias de uma ações for igual ao numero de filial sua respectiva variavel recebe o valor verdadeiro/
if($acao['A'] == count($modo))
{
$alterar = true;
}
if($acao['E'] == count($modo))
{
$excluir = true;
$multi_tarefa = true;
}
if($acao['P'] == count($modo))
{
$exportar = true;
}
if($acao['I'] == count($modo))
{
$incluir = true;
}
if($acao['X'] == count($modo))
{
$executar = true;
}
}// Fim do ELSE
return $acoes = array
(
"alterar"=>$alterar,
"excluir"=>$excluir,
"exportar"=>$exportar,
"incluir"=>$incluir,
"executar"=>$executar,
"multi_tarefa"=>$multi_tarefa
);
// if($filial != '')
}// fim da função?>Que está ocorrendo este tipo de erro: Warning: Invalid argument supplied for foreach() in /var/www/aguinaldo/jackson/classes/Greco.class.php on line 121
OBS: Está marcado com uma seta para saber onde está a condição.
Que tipo de condição eu devo colocar para que dê o mesmo resultado?
Carregando comentários...