diabolickman Posted May 9, 2012 at 02:52 PM Report #454084 Posted May 9, 2012 at 02:52 PM 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 😉
AndreLC Posted May 9, 2012 at 02:59 PM Report #454088 Posted May 9, 2012 at 02:59 PM Boa tarde, Podes utilizar a função mysql_real_escape_string() http://php.net/manual/pt_BR/function.mysql-real-escape-string.php Mas como é para inteiro pode-se fazer: $id_categoria = (int)$_GET['id']; echo ($knowledge != $sharing) ? "Serves no purpose!" : "Thank you for your help. It was very precious.";
diabolickman Posted May 9, 2012 at 03:39 PM Author Report #454102 Posted May 9, 2012 at 03:39 PM Por enquanto resolveu 😉...Vou ver o que o dono do servidor me diz e se há mais algum problema 😄 Obrigado 😄
ruiFernandes Posted May 9, 2012 at 04:11 PM Report #454111 Posted May 9, 2012 at 04:11 PM Boas, podes usar a função "addslashes", coloca uma "\" em todos os caracteres que precisam de ser "escapados"!?, os caracteres especiais que são usados nas query's sql. Cumprimentos, - Rui Fernandes
brunoais Posted May 9, 2012 at 05:12 PM Report #454128 Posted May 9, 2012 at 05:12 PM 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%.
diabolickman Posted June 26, 2012 at 11:51 AM Author Report #465580 Posted June 26, 2012 at 11:51 AM 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 🙂
HappyHippyHippo Posted June 26, 2012 at 12:03 PM Report #465582 Posted June 26, 2012 at 12:03 PM é 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 Portugol Plus
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now