[Resolvido] Erro com in_array
Galera montei um sistema de permissao de usuarios multinivel dinamico, usando como base o phpsecurepages - na verdade so paroveitei uma tabela e o form dele...
localmente usando o xampp funciona q é uma maravilha...
mandei pra o servidor e da o erro;
Warning: in_array() [function.in-array]: Wrong datatype for second argument in /home/camaravc/public_html/x/estrutura/users/alterar_form.php on line 72
meu alterar_form.php;
<?
$id = $_GET[id];
$sql = mysql_query("SELECT * FROM phpsp_users where primary_key='$id'");
$dados=mysql_fetch_array($sql);
?>
<form action="?pg=../estrutura/users/alterar_db.php" method="post">
<input type=hidden name="id" value="<? echo $id; ?>">
<h3>Alteração de Usuário</h3>
<table width="440" border="0" align="center" cellpadding="2" cellspacing="0">
<tr><td colspan="2" align="right" style="border-bottom:1px solid #cccccc">*Campos Obrigatórios</td>
</tr>
<tr>
<td width="140" align="right" valign="middle" style="border-bottom:1px solid #cccccc"><strong>*Nome:</strong></td>
<td width="320" valign="middle" style="border-bottom:1px solid #cccccc">
<strong>
<input name='nome' type='text' id="nome" value="<? echo $dados[nome]?>" size=45>
</strong></td>
</tr>
<tr>
<td width="140" align="right" valign="middle" style="border-bottom:1px solid #cccccc">*Login:</td>
<td width="320" valign="middle" style="border-bottom:1px solid #cccccc">
<? if($usernivel == "1" OR $usernivel == "2") {?>
<input name='bu' type='text' value="<? echo $dados[user]?>" disabled size=45>
<input name='user_login' type="hidden" value="<? echo $dados[user]?>" size=45>
<? } else {?>
<input name='user_login' type='text' value="<? echo $dados[user]?>" size=45>
<? }?>
</td>
</tr>
<tr>
<td width="140" align="right" valign="middle" style="border-bottom:1px solid #cccccc">*Senha:</td>
<td width="320" valign="middle" style="border-bottom:1px solid #cccccc">
<strong>
<input name='user_senha' type='password' id="user_senha" value="<? echo "$dados[password]";?>" size=45>
</strong></td>
</tr>
<? if($usernivel == "1") {?>
<tr>
<td align="right" valign="middle" style="border-bottom:1px solid #cccccc">*Nivel:</td>
<td valign="middle" style="border-bottom:1px solid #cccccc">
<input name='usuario_nivel' type='radio' value='1' <? if($dados[userlevel] == "1") { echo "checked";}?>> Usuário Master</td>
</tr>
<tr>
<td align="right" valign="middle" style="border-bottom:1px solid #cccccc">Permissão:</td>
<td valign="middle" style="border-bottom:1px solid #cccccc">
<? /* o parâmetro $string, é o WHERE `idRepresentante` = 2, por exemplo, ai o método só retorna todos os check, e marca apenas os que forem relacionados ao representante de id 2. Se você não passar nada, o método preenche a lista de checks, toda desmarcada. */
$listagem = "SELECT * FROM menu order by id";
$query = mysql_query($listagem);
$sqlxx = ("SELECT id_menu FROM permissao WHERE primary_key = $primary_key "); // o 1 aqui, você troca pelo id do usuário corrente
$consulta2 = mysql_query($sqlxx);
if(mysql_num_rows($consulta2)!=0) // só realiza o fech, se existir resposta, para não retornar erro, caso não tenha NENHUM favorito
{
while($dadosRel = mysql_fetch_assoc($consulta2))
{
$vetorFav[] = $dadosRel['id_menu']; // aqui eu guardo tudo oque tá no banco, relacionado à tal usuário no $vetorFav
}
}
while ($linha=mysql_fetch_array($query)){
$id = $linha["id"];
$projeto = $linha["nome"];
if( in_array( $linha['id'], $vetorFav ) ) //confere se existe o id_empre atual do loop, dentro de $vetorFav
$checked = 'checked="checked" '; // se tiver, é pq precisa mostrar marcado
else
$checked = ''; // caso contrário, não precisa por nada.. e imprime um "VAZIO" no input
echo '<input type="checkbox" value="'.$id.'" name="vereador[]" '.$checked.'/>'.$projeto.'<br />';
}//fecha while
?>
</td>
</tr>
<? } else {?>
<input name='usuario_nivel' type='hidden' value='3'><br>
<? }?>
</table>
<table align="center">
<tr>
<td width="436" colspan="2"> <p align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">
<input type='submit' value='Alterar'>
</font></p></td>
</tr>
</table>
<? if($usernivel == "1"){ echo "<input name='nivel2' type='hidden' value='$dados[userlevel]'>";}?>
</form>o que pode esta acontecendo?
Discussão (21)
Carregando comentários...