Ir para conteúdo
Fórum Script Brasil
  • 0

Problema com página restrita em DIV


Renato M

Pergunta

Olá galera, tudo bem?

Sou novo por aqui, alias nunca participei de fóruns. Mas vocês sabem né? Quando a coisa aperta e bate o desespero a gente recorre a tudo.

Quero deixar claro que odeio importunar as pessoas com perguntas, mas eu procurei pela minha duvida em diversos fóruns e no Google sem sucesso. Então espero contar com a boa vontade de vocês.

Estou desenvolvendo um simples sistema de gerenciamento de site. Para isso criei a pasta login onde o índex.php pede os dados do usuário, e criei a pasta acesso1, onde o índex.php é uma página restrita a usuário de nível 1.

Para estruturar a página eu criei uma div #tudo que contém as div #menu, #conteudo, #rodape.

O que fiz: quando o link no menu é acionado a página é aberta na div conteúdo, certo? Até aqui deu tudo certo. Só que a página cadastro_user.php também precisa ser restrita a usuários de nível 1, assim o fiz, dai vem o problema. Quando clico na opção USUARIO no meu, a página cadastro_user.php abre na div #conteudo com o seguinte erro:

Fatal error: Cannot redeclare isauthorized() (previously declared in c:\program files (x86)\easyphp1-8\www\acesso1\index.php:97) in c:\program files (x86)\easyphp1-8\www\acesso1\cadastro_user.php on line 9

Se eu não restingir o acesso à página, claro que abre, mas dai qualquer pessoa pode acessar a pagina pela URL, e isso não pode acontecer.

Por favor, me ajudem arrumar uma solução para esse problema, preciso finalizar esse sistema rapidamente.

Não sou avançado nisso, então tenham um pouco de paciência e explica passo-a-passo..

Conto com o apoio de vocês.

O código da restrição na página cadastro_user.php é o seguinte:

<?phpif (!isset($_SESSION)) {  session_start();}$MM_authorizedUsers = "1";$MM_donotCheckaccess = "false";// *** Restrict Access To Page: Grant or deny access to this pagefunction isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) {   // For security, start by assuming the visitor is NOT authorized.   $isValid = False;   // When a visitor has logged into this site, the Session variable MM_Username set equal to their username.   // Therefore, we know that a user is NOT logged in if that Session variable is blank.   if (!empty($UserName)) {     // Besides being logged in, you may restrict access to only certain users based on an ID established when they login.     // Parse the strings into arrays.     $arrUsers = Explode(",", $strUsers);     $arrGroups = Explode(",", $strGroups);     if (in_array($UserName, $arrUsers)) {       $isValid = true;     }     // Or, you may restrict access to only certain users based on their username.     if (in_array($UserGroup, $arrGroups)) {       $isValid = true;     }     if (($strUsers == "") && false) {       $isValid = true;     }   }   return $isValid; }$MM_restrictGoTo = "../login/index.php";if (!((isset($_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers, $_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {     $MM_qsChar = "?";  $MM_referrer = $_SERVER['PHP_SELF'];  if (strpos($MM_restrictGoTo, "?")) $MM_qsChar = "&";  if (isset($QUERY_STRING) && strlen($QUERY_STRING) > 0)   $MM_referrer .= "?" . $QUERY_STRING;  $MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . "accesscheck=" . urlencode($MM_referrer);  header("Location: ". $MM_restrictGoTo);   exit;}?>

Editado por Renato M
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Olha, seu código ficou todo embolado. Então está bem difícil de achar o erro.

De qualquer forma, esse erro acontece quando você declara uma função com o mesmo nome mais de uma vez. Procure ai onde a função isauthorized() está sendo declarada e delete onde estiver repetido.

Por exemplo: se você tem index.php que declara isauthorized(), depois dá um include em cadastro_user.php que tb declara isauthorized() você receberá esta mensagem de erro. Se o arquivo "pai" já declara a função, os "filhos" não podem declarar também.

Da uma olhada ai para ver se isso está acontecendo em seu código.

Link para o comentário
Compartilhar em outros sites

  • 0

É exatamente isto que o Lucas disse (a função está sendo declarada 2 ou mais vezes). Se esta função estiver em um arquivo separado e você estiver dando include ou require (no arquivo) nas duas páginas, troque para include_once ou require_once que vai resolver. A palavra once significa uma vez, logo include_once ou require_once irá incluir o arquivo apenas uma vez, mesmo que várias páginas à chamem (há uma verificação antes da inclusão).

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...