Jump to content


Photo

Pegando Url Com $http_referer


  • Faça o login para participar
2 replies to this topic

#1 Leandro Gonçalves

Leandro Gonçalves

    Novato no fórum

  • Usuários
  • 7 posts
  • Sexo:Masculino
  • Localidade:Anapolis-GO

Posted 04/08/2009, 17:37

Personalizando os erros do meu site, configurei o .htacess como é descrito abaixo.

ErrorDocument 401 error.php?401ErrorDocument 403 error.php?403ErrorDocument 404 error.php?404ErrorDocument 500 error.php?500ErrorDocument 503 error.php?503DirectoryIndex index.php manutencao.php



Montei uma pagina chamada "error.php", como seguinte o codigo:

<?$ip=$_SERVER['REMOTE_ADDR'];$Browser= $_SERVER["HTTP_USER_AGENT"];$htm_401="401.php";$htm_404="404.php";$htm_403="403.php";$htm_500="500.php";$htm_503="503.php";$mail=1;              $to=meuemail@host.com';       $subject="ERRO NO WEBSITE"; if ($QUERY_STRING == '401'){$mailbody="ERRO 401 \nURL: $HTTP_REFERER \nIP DO USUARIO: $ip \nBROWSER: $Browser";header ("Location: $htm_401");}if ($QUERY_STRING == '403'){$mailbody="ERRO 403 \nURL: $HTTP_REFERER \nIP DO USUARIO: $ip \nBROWSER: $Browser";header ("Location: $htm_403");}if ($QUERY_STRING == '404'){$mailbody="ERRO: 404 \nURL: $HTTP_REFERER \nIP DO USUARIO: $ip \nBROWSER: $Browser";header ("Location: $htm_404");}if ($QUERY_STRING == '500'){$mailbody="ERRO 500 \nURL: $HTTP_REFERER \nIP DO USUARIO: $ip \nBROWSER: $Browser";header ("Location: $htm_500");}if ($QUERY_STRING == '503'){$mailbody="ERRO 503 \nURL: $HTTP_REFERER \nIP DO USUARIO: $ip \nBROWSER: $Browser";header ("Location: $htm_503");}else{print "ERRO DESCONHECIDO!";}if($mail==1){mail($to,$subject,$mailbody);}?>


O que deveria acontecer era, se o usuario acessar tal pagina, e ela nao existir, vai aparecer o famoso erro 404.
E eu receberia no meu email o seguinte conteudo:


ERRO: 404
URL: http://www.endereco-do-site.com.br/tal-pagina.htm
IP DO USUARIO: xxx.xxx.xxx.xxx
BROWSER: Opera/9.80 (X11; Linux i686; U; pt-BR) Presto/2.2.15 Version/10.00


Com isso eu ficaria sabendo onde esta a quebra de um link, o problema é q o campo "URL" sempre vem em branco.
Como posso solucionar?
No caso estou usando "$HTTP_REFERER" pq o servidor é PHP4.

#2 Fábio Luciano

Fábio Luciano

    Ativo

  • Usuários
  • 309 posts
  • Sexo:Masculino
  • Localidade:Santa Maria / DF
  • Interesses:Ah eu gosto de tudo :D

Posted 04/08/2009, 18:24

E qual o problema enfrentado? O Campo URL fica em branco?
O teu servidor tem PHP inferior à 4.1.0? $_SERVER['HTTP_REFERER'], está disponível desde esta versão, antes eram $HTTP_SERVER_VARS, e não $HTTP_REFERER.
Por que não usa o switch ao if?

Edição feita por: Fábio Luciano, 04/08/2009, 18:25.


#3 Leandro Gonçalves

Leandro Gonçalves

    Novato no fórum

  • Usuários
  • 7 posts
  • Sexo:Masculino
  • Localidade:Anapolis-GO

Posted 04/08/2009, 21:38

E qual o problema enfrentado? O Campo URL fica em branco?
O teu servidor tem PHP inferior à 4.1.0? $_SERVER['HTTP_REFERER'], está disponível desde esta versão, antes eram $HTTP_SERVER_VARS, e não $HTTP_REFERER.
Por que não usa o switch ao if?



A versão é exatamente 4.3.10, a intenção desse "script" é justamente descobrir onde pode ter um link "quebrado", por isso não deveria ficar em branco.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq