• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Tiago fernando

querystring dúvidas

14 mensagens neste tópico

Ola pessoal eu estou com dificuldades na seguinte query..


<?
require_once('connect.php');

$cons = mysql_query("select * from Pagina where titulo = '".$valor."'");
$linha = mysql_fetch_array($cons);
?>

<body>

<?

$valor = 'pag';


            $valor = (isset($_GET[$valor])) ? addslashes(htmlspecialchars($_GET[$valor], ENT_QUOTES)) : false;

   switch ($valor)  {

         case 'Serviços':

            echo $linha['conteudo'];

         break;

         case 'Quem Somos':

            echo $linha['conteudo'];

         break;

   default:
      echo '';
   break;
}
?>
</body>

ou seja o que eu queria fazer é qdo seleciono uma opção no menu exemplo:<a href="index.php?pag=Serviços"> a query iria na base de dados e escolhia o conteudo da pagina serviços. mas não esta a funcionar

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens de fazer a query ao mysql depois de definires o valor da variável $valor, e não antes.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

desculpa eu sou novo em programação eu não precebi muito bem como montar a query pelo que precebi o código teria de ser assim

<?
$cons = mysql_query("select * from Pagina");
$linha = mysql_fetch_array($cons);
?>

mas como eu iria montar a quer?

<?

$valor = 'pag';


            $valor = (isset($_GET[$valor])) ? addslashes(htmlspecialchars($_GET[$valor], ENT_QUOTES)) : false;

   switch ($valor)  {

         case 'Serviços':

            $cons = mysql_query("select * from Pagina where titulo = '.valor.'");
                 $linha = mysql_fetch_array($cons);

            echo $linha['conteudo'];

         break;

fiquei perdido agora  :wallbash:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes começar no W3Schools: http://www.w3schools.com/PHP/php_syntax.asp

Estás a ver lá em cima a variável valor a ser utilizada (linha 4)?

$cons = mysql_query("select * from Pagina where titulo = '".$valor."'");

Agora, vê onde é que lhe atribuis conteúdo (à variável $valor). No fundo, tal e qual o que o fnds disse... Não esquecer que o ficheiro PHP é lido de cima para baixo pelo interpretador.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

opa acho que ja entedi qdo chegar em casa vou testar obrigado pela ajuda pessoal, este forum é fantastico tem me ajudado muito e facilitado a aprendizagem, já agora essa query é considerada segura da maneira que esta montada?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O addslashes() não tem qualquer vulnerabilidade, simplesmente as pessoas não sabem usar a função correctamente e isso sim cria vulnerabilidades na aplicação.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

djthyrax eu sou novo em programação e sei que não sou muito bom mas tento sempre fazer da maneira mais correta, eu gostaria de saber se o addslashes()  que eu utilizei esta da maneira correta???

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Está usado correctamente no contexto correcto do script, mas pode estar a criar-te uma vulnerabilidade dependendo do servidor. O grande problema do addslashes() é que por vezes quando o magic_quotes está activo, o addslashes() reverte o efeito e acaba por "descapar" os caracteres mais perigosos. Por isso, o ideal é teres logo ao início uma rotina que veja se o magic_quotes está activo (com o magic_quotes_gpc()), e se tiver, usas o stripslashes(), e depois nas queries usas o mysql_real_string_escape() como te indicaram.

PS: O mysql_real_string_escape() funciona fazendo um pedido ao servidor MySQL, pelo que se a usares, vais ter que usar mesmo o MySQL como SGBD, e tens de já ter chamado o mysql_connect(). :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

pessoal obrigado pela ajuda vou pesquisar e ler um pouco sobre segurança pois não sei nada sobre o assunto

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes ler o sticky meu na secção de PHP sobre Vulnerabilidades em Aplicações Web para começar. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora