Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lucas Vida

[Resolvido] Verificar dados enviados via GET

Recommended Posts

Bom dia amigos!

 

estou tendo uma dúvida crucial com $_GET, estou fazendo um sistema que passa alguns valores através do GET. como por exemplo id_user,

ao qual atraves do MySQL busco apenas uma pesquisa relacionada com o ID do usuário. Mas se por ventura eu apagar o valor, no meu argumento mysql da erro.

 

Sendo assim queria saber se tem jeito de corrigir essa "deficiência" pois se um usuário comum fizer isso de certa forma vai atrapalhar o envio de todo o funcionamento de todo o sistema.

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caso não seja viável passar por $_POST faça uma verificação antes de executar a query, assim você poderá avisar o usuário que algo esta errado podendo dar opções a ele.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu pessoal, vou testar aqui o que o Andre sugeriu,

 

realmente por POST é inviavél, pois a maioria das vezes passo o valor por links.

 

Muito obrigado pessoal, caso eu não consiga, dou um toque aqui!

 

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Andre, deu certinho aqui!

 

Muito obrigado por essa dica, caso seja possível gostaria que por gentileza explica-se a sintaxe, dessa maneira poderei compreeder melhor o que foi feito para verificar se a

variavél estava vazia.

 

Nesta parte você usou operador ternário? certo?

 

? $_GET['id'] : 1;

Obrigado e desculpa o incomodo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu prefiro utilizar assim.

<?php
// adicionando exibição de todos os erros
ini_set ( 'display_errors', true );
error_reporting ( E_ALL );

$id = &$_GET ['id'];
$id = ( int ) $id;
echo 'A variável $id é igual a ', $id;
Fazendo o cast evito SQL Injection. No caso, deixar o valor padrão como 1 não é muito correto, pois alguém é id = 1. Então, o melhor é deixar o padrão 0 (que é o que vai ocorrer neste caso), já que (int) de qualquer coisa não numérica = 0. Ao passar por referência, evitamos também o NOTICE.

 

Façamos 3 testes.

Acessando sem passar $_GET['id']- pagina.php

A variável $id é igual a 0

Passando um parâmetro errado - pagina.php?id=<script>alert('teste')</script>

A variável $id é igual a 0

Passando o parâmetro correto - pagina.php?id=23

A variável $id é igual a 23

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Matias, o número ali era apenas uma exemplificação.

Se você ler meu post novamente, verá isso:

 

Ai tu troca aquele 1 ali pelo valor que tu quiser que seja padrão caso não seja passado nenhum pelo $_GET['id'].

;)

 

Mals... nem vi... hehe

 

Mas de qualquer forma, a dica é válida.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu pessoal!

 

Sempre ajudando a todos!

 

Gostaria de aproveitar o tópico e perguntar o significado da exclamação antes do empty, vejo sempre ela por ai!

 

Abs e bom fds a todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

! é o operador de negação

 

http://php.net/manual/pt_BR/language.operators.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.