Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
eai pessoal pesquisei sobre restriçao aqui no imasters li manuais e finalmente consegui fazer um pequeno sistema administrativo :lol:
mas to com um problema q nao sei como resolver..
tenho um login.php, quando a pessoa se loga vai pro index.php (que tem restriçao pra acessar so se logar certo, claro), no menu eu chamo os links com query string assim:
index.php?menu=editar
o problema é que o usuario pode entrar so na pagina e editar td (principalmente quando é pra mudar login e senha do painel, tbm da :S dai f***):
site.com.br/painel/editar.php
e se eu usar o mesmo codigo q eu usei na restriçao do index.php nessas paginas da erro quando eu acesso por query string (index.php?menu=editar) mas nao da problema quando eu acesso normal (editar.php) pq nao posso usar a restriçao 2 vezes e vcs sabem que a pagina é incluida com query string :wacko:
segue o erro
Fatal error: Cannot redeclare isAuthorized()
alguem pode ajudar com esse paradoxo? :wacko:
valeu!
Quer uma dica pra não ter problemas no futuro,
Eu fiz tenho um sisteminha assim, a parte administrativa, deixe só com area adm por exemplo, tem a index.php quando se logar ira pra adm.php(essa adm.php ira conter a query string) assim quando voce for fazer um cadastro, voce usa (adm.php?pagina=cadastro) ou coloque todos os arquivos adm na mesma pagina, assim terá um organização melhor e não terá esse erro!
Bom essa foi a maneira que eu usei para não ter esse erro!
>
isAuthorized() está sendo chamada duas vezes, por isso está ocorrendo esse erro.
sim inclusive eu falei isso
>
mas nao da problema quando eu acesso normal (editar.php) pq nao posso usar a restriçao 2 vezes e vcs sabem que a pagina é incluida com query string :wacko:
:S
>
Eu fiz tenho um sisteminha assim, a parte administrativa, deixe só com area adm por exemplo, tem a index.php quando se logar ira pra adm.php(essa adm.php ira conter a query string) assim quando voce for fazer um cadastro, voce usa (adm.php?pagina=cadastro) ou coloque todos os arquivos adm na mesma pagina, assim terá um organização melhor e não terá esse erro!
mas pelo oq eu entendi foi isso q eu fiz..
O arquivo que declara a função isAuthorized está sendo chamada através de um include, certo? Mude para include_once e acho que vai resolver esse erro.
>
O arquivo que declara a função isAuthorized está sendo chamada através de um include, certo? Mude para include_once e acho que vai resolver esse erro.
nao :S
o unico que tem é require_once dos arquivos da conexao com o db
depois a restriçao
if (!isset($_SESSION)) {
session_start();
}
$userautorizado = "";
$donotcheckaccess = "true";
function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) {
$isValid = False;
if (!empty($UserName)) {
$arrUsers = Explode(",", $strUsers);
$arrGroups = Explode(",", $strGroups);
if (in_array($UserName, $arrUsers)) {
$isValid = true;
}
if (in_array($UserGroup, $arrGroups)) {
$isValid = true;
}
if (($strUsers == "") && true) {
$isValid = true;
}
}
return $isValid;
}
$restrito = "painel.php";
if (!((isset($_SESSION['Username'])) && (isAuthorized("",$userautorizado, $_SESSION['Username'], $_SESSION['UserGroup'])))) {
$qsChar = "?";
$referrer = $_SERVER['PHP_SELF'];
if (strpos($restrito, "?")) $qsChar = "&";
if (isset($QUERY_STRING) && strlen($QUERY_STRING) > 0)
$referrer .= "?" . $QUERY_STRING;
$restrito = $restritoIr. $qsChar . "acesso=" . urlencode($referrer);
header("Location: ". $restrito);
exit;
}Coloque a declaração da função dentro de um if que verifica se ela existe:
if ( !function_exists('isAuthorized') ){
function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) {
$isValid = False;
if (!empty($UserName)) {
$arrUsers = Explode(",", $strUsers);
$arrGroups = Explode(",", $strGroups);
if (in_array($UserName, $arrUsers)) {
$isValid = true;
}
if (in_array($UserGroup, $arrGroups)) {
$isValid = true;
}
if (($strUsers == "") && true) {
$isValid = true;
}
}
return $isValid;
}
}
Acho que isso resolve.
valeu mano!
chamando so a funçao tbm funcionou
resolvido :thumbsup:
isAuthorized() está sendo chamada duas vezes, por isso está ocorrendo esse erro.