Jump to content

CMS E107


MrFilipe
 Share

Recommended Posts

  • Replies 40
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

MrFilipe.... Não era só a linha 192....

Presumo que tenhas mesmo substituído este codigo todo:

$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);

De qualquer forma....

Aconselho-te o seguinte... na 1ª linha do ficheiro class2.php vais fazer:

$_SERVER['QUERY_STRING'] = strip_tags(html_entity_decode($_SERVER['QUERY_STRING']));

Se mesmo assim não der... pah, aconselho-te a mandares esse cms para outro sitio 😉

Link to comment
Share on other sites

Deixa ver se entendi nao substituiu nada, mas acrescento na primeira linha de código isto:

$_SERVER['QUERY_STRING'] = strip_tags(html_entity_decode($_SERVER['QUERY_STRING']));

Ou seja para que ele corra em 1º este código acima, certo??

Quanto ao cms, o problema é que o trabalho ja esta quase todo feito neste cms, e mudar tudo agora é muito dificil 😉

Mais uma pergunta, coloco este código à mesma??  Abaixo

$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);

Eu já tinha substitui nao foi so a linha 192 foi a partir desta linha ate à 200.

Abraço.

Link to comment
Share on other sites

Deixa ver se entendi nao substituiu nada, mas acrescento na primeira linha de código isto:

$_SERVER['QUERY_STRING'] = strip_tags(html_entity_decode($_SERVER['QUERY_STRING']));

Sim ele deve correr isso na primeira linha do ficheiro class2.php

$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);

Se ja substituiste, então já não precisas de colocar esse código 🙂

Link to comment
Share on other sites

Ta a funcionar lindamente  😁

Só tem é um pequeno problema é que este trabalho está feito por passos, ou seja, um sistema de reservas.

E existe uma tabela onde vai buscar os dados todos a base de dados consoante os parâmetros que são levados, ou seja, existe uma consulta em sql para que isso aconteça.

O problema é, essa tabela tem muitos dados, por isso é necessário clicar num link para mostrar mais dados, tipo next. Anteriormente também dava access denied, e agora aparece os primeiros dados, mas se clicar em next, não apresenta nada, e se clicar em anterior também não aparece nada, como que se perdesse os dados  🙂 . O que será necessário para resolver isto??

Mas desde já muito obrigado  😉

Abraço.

Link to comment
Share on other sites

Eu só agora é que reparei com o código que me forneceste para eu colocar na 1º linha do código :

$_SERVER['QUERY_STRING'] = strip_tags(html_entity_decode($_SERVER['QUERY_STRING']));

e está a funcionar... Só que há um problema é que depois já não me envia os parâmetros(turmaID e portur)  👍 o link depois de sbmuter o form fica:

http://localhost/e107/Reserva/DtReserva.php?reservaid=9&profID=100-201&turmaID=2D&protur=1, aparece assim e não dá access denied.

O problema esta que quando eu avanço outra página ele perde completamente os parâmetros turmaID e protur como esta no link abaixo:

http://localhost/e107/Reserva/MHorario.php?profID=100-201&turmaID=&data=2011-05-10&reservaid=9&datar=2&protur=

O será necessário fazer??

De resto ele envia tudo os parâmetros bem...

Por que razão é que deixa de enviar só estes dois parâmetros??

Abraço.

Link to comment
Share on other sites

Sinceramente, não sei que te diga -.-

Gostava muito de te ajudar mas isso são coisas que só os gajos do E107 te poderão responder.

Eu testei aqui (sem E107) e em modo normal deveria ficar assim -.- o código deles não é SEQUER coerente.... mas isso sou eu que digo :S

Lamento, mas as dicas que te dei so te servem para passar alguns obstáculos... No entanto deves fazer na maneira correcta e para tal deves consultar a wiki do E107... desculpa mas para esse CMS não consigo ser útil

Link to comment
Share on other sites

Obrigadão a mesma 😞.

Andei a testar uma coisinhas e  já consegui solucionar o problema dos parâmetros...

O problema agora mesmo é naquela tabela que perde os dados quando faço next, será que não tens outra ideia para solucionar este problema, já o tinha indicado acima e tu disseste para colocar isto em comentário:

e107_ini_set('arg_separator.output',     '&');

, que esta na linha 106 da class2.php, certo??

Será que não há maneira para desenrascar este problema da tabela??

Pah, mas fica desde já, FOSTE UMA GRANDE AJUDA  👍 Sem ti ainda estava com aquilo do access denied.

Abraço.

Link to comment
Share on other sites

sim eu disse-te para comentares essa linha, porque o CMS converte os & para & no teu url.... só que como nós reconvertemos para o estado normal (com aquela linha que te disse para pôres no inicio do ficheiro) essa configuração já não estava correcta ....

Quanto ao resto... :/ Pah nem sei porque é que essa tabela dá raia a fazer next -.- :/

Link to comment
Share on other sites

Assim aparece antes de clicar no next, ou seja como deve de aparecer...

http://localhost/e107/Reserva/MCalendario.php?profID=290-198&turmaID=&dia=2&tempo=1&data=2011-05-10&reservaid=19&protur=

Depois de clicar no next aparece assim :

http://localhost/e107/Reserva/MCalendario.php?pageNum_Recordset1=1&totalRows_Recordset1=57&profID=290-198&turmaID=&dia=2&tempo=1&data=2011-05-10&reservaid=19&protur=

PS: Não ligues ao turmaID e protur sem parâmetros, ainda tenho de alterar isso, porque é desnecessário...

Abraço.

Link to comment
Share on other sites

Ora  bem,

Onde tens a linha:

$queryString_Recordset1 = "&" . htmlentities(implode("&", $newParams));

Altera para:

$queryString_Recordset1 = "&" . implode("&", $newParams);

O mesmo desta:

$queryString_RecordCalendario = "&" . htmlentities(implode("&", $newParams));

para esta:

$queryString_RecordCalendario = "&" . implode("&", $newParams);
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.