Jump to content

CMS E107


MrFilipe
 Share

Recommended Posts

Boas pessoal,

Gostaria que me ajudassem...

Eu fiz um formulário me php e coloquei-o no E107, através deste código

<?php
//código do e107
require_once('../class2.php');
require_once(HEADERF);
?>


<?php
//código do e107
/* enter your own code here */
$caption = "This is the caption of the page";
$text = "and this is the main text of the page!";
?>


Aqui esta o meu form com o código que criei.

<?php
//código do e107
            $ns->tablerender($caption, $text);
            require_once(FOOTERF);
?>

O problema é que ao clicar no submit aparece-me Access Denied, qual será o problema ??

Relembro que o código acima é para colocar uma pagina personalizada no e107 e depois ser chamada...

Abraço.

Link to comment
Share on other sites

  • Replies 40
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Ok... eu não percebo nada do E107, mas vamos experimentar uma coisa... No teu código, altera para:

<?php
//código do e107
require_once('../class2.php');
require_once(HEADERF);
?>


<?php
//código do e107
/* enter your own code here */
$caption = "This is the caption of the page";
$text = "and this is the main text of the page!";
ob_start();
?>


Aqui esta o meu form com o código que criei.

<?php
$text = ob_get_clean();
//código do e107
            $ns->tablerender($caption, $text);
            require_once(FOOTERF);
?>
Link to comment
Share on other sites

:x assim não te consigo ajudar ... :S esse access denied pode ser em pelo menos 2 sítios da class que enviaste.

No ficheiro class2.php altera, o seguinte:

Na linha 196

# Tens:
die("Access denied.");

#Altera para:
die("Access denied. ERRO DE CARACTERES ESPECIAIS NO URL");

Na linha 467:

#Tens:
die('Access denied');

#Alteras para:
die('Access denied. ERRO DE SESSÃO');

Depois voltas a correr o teu form e diz-me como aparece o erro 😉

Link to comment
Share on other sites

OMFG....

Estive a investigar um pouco....

O ficheiro class2.php tem isto:

# Linha 105
e107_ini_set('arg_separator.output',     '&');

# Linha 192 a  200
$inArray = array("'", ";", "/**/", "/UNION/", "/SELECT/", "AS ");
if (strpos($_SERVER['PHP_SELF'], "trackback") === false) {
foreach($inArray as $res) {
	if(stristr($_SERVER['QUERY_STRING'], $res)) {
		die("Access denied.");
	}
}
}
unset($inArray);

Sinceramente, há programadores que deviam ter umas aulas de algoritmia e análise (estou a falar dos programadores do E107)...

... Então primeiro definem o separador dos argumentos da query string como '&' .... e depois vão procurar na query string por ';' e se tiver, dá ACCESS DENIED!?!?!?!?

🙂 E isto é um produto acabado?!?!

Anyway, podes efectuar a seguinte correcção (parcial... ou seja só para safar...) ...

Substituis este codigo:

$inArray = array("'", ";", "/**/", "/UNION/", "/SELECT/", "AS ");
if (strpos($_SERVER['PHP_SELF'], "trackback") === false) {
foreach($inArray as $res) {
	if(stristr($_SERVER['QUERY_STRING'], $res)) {
		die("Access denied.");
	}
}
}
unset($inArray);

Por:

$inArray = array("'", ";", "/**/", "/UNION/", "/SELECT/", "AS ");
if(strpos($_SERVER['PHP_SELF'], "trackback") === false)
foreach($inArray as $res)
	if(stristr($_SERVER['QUERY_STRING'], $res))
                    if( ($res != ';') || stristr(preg_replace("/(\&\w+\;)/i","",$_SERVER['QUERY_STRING']), $res) )
                        die("Access denied. $res");
unset($inArray);
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.