Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal,
Trago uma dúvida de iniciante em PHP:
A seguinte URL funciona perfeitamente:
http://localhost/videos.php?id=2
Meu problema: se o visitante resolve (supostamente) conferir o que acontece se ele DELETAR ?id=2 da URL, dá erro, porque o script, nesse caso, precisa do id para exibir corretamente.
Minha pergunta: como evitar que dê erro na página, quando não existe o id, como indicado nesse exemplo? Qual outro modo (POST??? Como aplico?) de chamar os dados, para evitar esse problema?
EXEMPLO:
Esse script funciona perfeitamente, desde que não se apague o id da URL:
$busca = "SELECT * FROM amigos INNER JOIN usuarios ON nome_autor = usuarios.n_autor WHERE cod_autor= '{$_REQUEST['id']}' LIMIT $inicio, $qnt";
$query = mysql_query($busca);
while($dados = mysql_fetch_array($query, MYSQL_ASSOC)) {
$dados['cod_amigo'];
$dados['nome_amigo'];
$dados['nome_autor'];
?>faz validações
$id = isset($_GET['id']) && intval($_GET['id'])? (int)$_GET['id']: null; // ve q bicho da isso =D
if(is_null($id)){
echo 'seu puto isso num e um valor inteiro safado';
exit;
}
intval() eu nem uso pra fala verdade so (int) resolve..
oq vie da url passa pra inteiro msm se o cara digita string la ele converte pra int 0
pronto faz a condição q da a mensagem pro camarada c for 0 ou null..
>
faz validações
$id = isset($_GET['id']) && intval($_GET['id'])? (int)$_GET['id']: null; // ve q bicho da isso =D
if(is_null($id)){
echo 'seu puto isso num e um valor inteiro safado';
exit;
}
intval() eu nem uso pra fala verdade so (int) resolve..
oq vie da url passa pra inteiro msm se o cara digita string la ele converte pra int 0
pronto faz a condição q da a mensagem pro camarada c for 0 ou null..
Luis Paullo: funcionou perfeitamente. Obrigado pela ajuda! E também pelo bom humor! Hehehe!
Faz um if
Se não receber id por get,
coloca $id= 1;
Cuidado com sql injection,
Não manda os dados direto para a sql, usa o mysql_real_scape_string.