Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou com um problema URGENTE na autorização / arquivo restrito do meu sistema em PHP.
Quando eu entro na pagina "excluir_albuns.php" aparece apenas o seguinte erro:
Fatal error: Cannot redeclare isAuthorized() (previously declared in /home2/th132210/public_html/new/galeria/admin/index.php:37) in /home2/th132210/public_html/new/galeria/admin/excluir_albuns.php on line 33
Eu vi na internet que seria pq existem 2 funçoes "isAuthorized()" no meu arquivo excluir_albuns.php e REALMENTE EXISTE. Mas nao sei oq fazer.
A funçao se repete na primeira linha e depois da linha $MM_restrictGoTo = "login.php";
function 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 == "") && true) {
$isValid = true;
}
}
return $isValid;
}
$MM_restrictGoTo = "login.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;
}
O que eu faço?
>
Retirado o trecho "AJUDEM POR FAVOR" do título do tópico por ir contra as regras do fórum:
As funções fazem a mesma coisa?
Se sim, deixe só uma.
Se não, simplesmente altere o nome de uma das funções.
Peço desculpas pela minha ignorância, mas estou realmente desesperada.
Enfim, no código pelo o que eu sei (sou iniciante), a primeira linha que eu mostrei está determinando a função do isAuthorized e a segunda está acionando o isAuthorized. O código tem tudo já, se não fizer sentido peço que leia-o pq você deve entender mais que eu hehe
Então, não tem como eu tirar nenhum dos dois. Daí fica esse paradoxo, com o erro.
Se quiser te mando todo meu codigo.
Seguem as linhas que repetem o ISAUTHORIZED
function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup)
if (!((isset($_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers, $_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {Fatal error: Cannot redeclare isAuthorized() (previously declared in /home2/th132210/public_html/new/galeria/admin/index.php:37) in /home2/th132210/public_html/new/galeria/admin/excluir_albuns.php on line 33
Não, você não entendeu...
Uma coisa é a DECLARAÇÃO da função. Você só declara ela uma vez.
Outra coisa é CHAMADA da função. Você pode chamar quantas vezes quiser.
O problema é que você definiu 2 funções com mesmo nome, o que é proibido.
Verifique os arquivos
/home2/th132210/public_html/new/galeria/admin/index.php na linha 37 e
/home2/th132210/public_html/new/galeria/admin/excluir_albuns.php na linha 33
Se são 2 funções que fazem a mesma coisa, você precisa excluir uma das declarações. Recomendo excluir do segundo arquivo.
Se fazem coisas diferentes, mude o nome de uma delas...
>
Não, você não entendeu...
Uma coisa é a DECLARAÇÃO da função. Você só declara ela uma vez.
Outra coisa é CHAMADA da função. Você pode chamar quantas vezes quiser.
O problema é que você definiu 2 funções com mesmo nome, o que é proibido.
Verifique os arquivos
/home2/th132210/public_html/new/galeria/admin/index.php na linha 37 e
/home2/th132210/public_html/new/galeria/admin/excluir_albuns.php na linha 33
Se são 2 funções que fazem a mesma coisa, você precisa excluir uma das declarações. Recomendo excluir do segundo arquivo.
Se fazem coisas diferentes, mude o nome de uma delas...
Linha 37 index.php
function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) {
Linha 33 Excluir_albuns.php
function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) {
E nesse index.php, está incluido o excluir_albuns.php. Ou seja, INTEIRAMENTE se repete, sem necessidade.
Isso é porque antigamente esse sistema usava iframe e fazia o trabalho independente.
Apaguei toda a função que começava na linha 33 do excluir_albuns, pois o index.php era o principal do sistema administrativo e deixaria todas as páginas linkadas a ele restritas.
Resultado: funcionou perfeitamente.
VOCÊ É UM G Ê N I O! Muito obrigada! Já estava desistindo!
Retirado o trecho "AJUDEM POR FAVOR" do título do tópico por ir contra as regras do fórum:
>
Regra do Fórum: 01ª - Conteúdo fora de contexto
Evite entitular os tópicos com palavras como: "ME AJUDE", "PELO AMOR DE DEUS", "ESTOU DESESPERADO", "URGENTE", "SOCORRO", "HELP", "PEDIDO", "IMPLORO", "PLEASE", "DÚVIDA", ou qualquer coisa similar, assim como utilizar Caixa Alta (letras todas em maiúsculas) no título ou mesmo no corpo do tópico ou post. Utilize títulos curtos e claros, que condigam com o contexto do tópico, por favor.
As funções fazem a mesma coisa?
Se sim, deixe só uma.
Se não, simplesmente altere o nome de uma das funções.