Jump to content

Recommended Posts

Posted

Olá

É o seguinte. Tenho o meu site de portefólio, com um menu em que cada item tem um <a href="trabalhos.php?id=1"> , ou seja, quero mandar o id através desse menu, para que noutra página apenas mostre os trabalhos dessa categoria. Pronto, isso tá tudo a funcionar.

Pronto, na outra página apanho esse GET:

$id_categoria=$_GET['id'];

Pronto...O problema: O link fica algo como http://meuservidor/trabalhos.php?id=1

Se eu acrescentar uma pelica no fim (    http://meuservidor/trabalhos.php?id=2'  ) ele vai dar esse erro:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/meuservidor/public_html/trabalhos.php on line 20

Pronto, o dono do servidor onde o meu site está alojado disse-me para corrigir isso ou suspende-me a conta, porque é um porto para sql inject e que me removeu um shell (não sei o que é)

Alguém me pode dar umas luzes de como resolver isto?

Obrigado 😉

Posted

Nesse caso usa mm o (int). É o mais rápido e é mais seguro que o mysql_real_escape_string()

"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

  • 1 month later...
Posted

Olá outra vez 🙂

Até agora usei o (int) mas estou a experimentar a seguinte expressão:

$id_categoria = (int)(mysql_real_escape_string(stripslashes($_GET['id'])));

A mim parece-me melhor e a vocês? Melhor? Mais segura? Desnecessária? Pior?

Obrigado 🙂

Posted

é como dar dar a volta a uma rotunda duas vezes ...

tens de perceber o que cada passo faz:

- o mysql_real_escape_string adiciona o caracter '\' quando achar necessário para eliminar problemas na construção do comando SQL,

logo o resultado seria a string : 1\'

- o explicit cast para inteiro através do (int) interpreta a string para um inteiro (eliminando o resto)

logo o resultado seria o número inteiro : 1

como o que tu queres é o número, o uso do mysql_real_escape_string com o explicit cast é irrelevante

o meu conselho é, usa somente o (int) que assim ficas arrumada (isto quando queres números)

IRC : sim, é algo que ainda existe >> #p@p

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
×
×
  • 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.