Biel. 9 Denunciar post Postado Dezembro 11, 2015 Boa tarde a todos. Direto ao ponto .Pessoal gostaria que na get/url aceitasse somente números, nada mais! A função !is_numeric é para aceitar somente números na url. !is_numeric barra todos os caracteres, menos # , talvés tenha até outro (s) que eu não conheço. A regra abaixo anti sql na url é para impedir o colega de digitar qualquer coisa na url que não seja número. O problema e o que também aceita jogo da velha # . Gostaria que aceitasse somente números, nada além de números. 1º EX O problema é que esta regra antisql aceita jogo da velha # .... ou seja colocou # na url paraliza tudo e o colega pode comecar a trabalhar em cima disso.. Gostaria que aceitasse somente números, nada além de números. if(!is_numeric($_GET['id'])){ header("Location: Nao_he_tão_seguro_quanto_parece_vai_tentando_que_um_dia_vc_quebra.php"); } 2º O problema é que esta regra antisql também aceita jogo da velha # .... ou seja colocou # na url paraliza tudo e o colega pode comecar a trabalhar em cima disso.. Gostaria que aceitasse somente números, nada além de números. $id = (string)$_GET['id']; // <- se for digitado qualquer coisa na url que seja string, será comparado com a segunda linha ctype_digit if(ctype_digit($id) === false){ // <- ctype_digit — Verifica se os caracteres são numéricos, se for ótimo o conteudo é exibido, se não for header("Location: Nao_he_tão_seguro_quanto_parece_vai_tentando_que_um_dia_vc_quebra.php"); // <- é redirecionado para esta página } infelizmente esta regra também aceita jogo da velha # 3º Exemplo $tete = ctype_digit($_GET['id']); // <- aceita somento número na get/url if($tete === false) { // <-se o que sendo passado na get/url não for numero header("Location: a_url_requisitada_nao_existe.php"); // <- é redirecionado para } Pessoal gostaria de criar um função que se o colega digitasse na url # e desse enter enter por exemplo ele fosse redirecionado ou o # fosse substituido por numero qualquer. gostaria que alguém complementasse a função abaixo para que a coisa funcione $url = $_GET['id']; $variavel = str_replace("#", "65236", $url); if() { echo "aceita_somente_numeros_nada_mais.php"; } Compartilhar este post Link para o post Compartilhar em outros sites
ESerra 744 Denunciar post Postado Dezembro 11, 2015 HTML básico. # é a marca da âncora, logo ele será aceito: teste.php?id=4# -> $_GET['id'] retornará 4 teste.php?id=#4 -> $_GET['id'] retornará "nada" Compartilhar este post Link para o post Compartilhar em outros sites
Biel. 9 Denunciar post Postado Dezembro 11, 2015 Pelo visto com php não tem como barrar o jogo da velha # de ser digitado na url. E com javascript tem como fazer barrar o jogo da velha de ser digitado na url? Tipo assim: O colega digitou na url # ou qualquer simbolo ou caracter estranho, o javascript vendo isso vai e remove automaticamente da url. Importante: O site só vai funcionar se o javascript estiver habilitado. Para isso acredito eu, o Javascript tem que ter ligação com banco de dados para que o site não funcione como javascript desabilitado TEM COMO FAZER O QUE ESTOU DIZENDO PESSOAL? Compartilhar este post Link para o post Compartilhar em outros sites
ESerra 744 Denunciar post Postado Dezembro 11, 2015 Não, não tem como fazer isto... nem com URL amigável... Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Ferreira da Silva 6 Denunciar post Postado Dezembro 11, 2015 is_numeric <= Verifica se é número, se você por o Sinal de exclamação, você passa a negar isso, ou seja, se não for número. Então retire a exclamação! $_GET['id'] = "1245487"; if(is_numeric($_GET['id'])){ echo "EBAAA SOU NUMERO => " . $_GET['id']; }else{ echo "AAAAH, NAO SOU NUMERO => " . $_GET['id']; } VEJA SE ESSA FUNÇÃO ABAIXO RESOLVE SEU PROBLEMA? $url = "HTTP://www.google.com.br/#1245878"; function verificar($url){ $exploder = @explode("#", $url); $conta = count($exploder); if($conta > 1) { return true; }else{ return false; } } var_dump( verificar($url) ); Compartilhar este post Link para o post Compartilhar em outros sites