Eu costumava sentir que havia muitos valores em Request.ServerVariables, mas agora vejo que ainda existem tantos, mas hoje vou falar sobre um dos valores - HTTP_Referer e qual a diferença entre Server_Name e Http_Host em Solicitação.ServerVariáveis?
Acabei de executar um trecho de código para ver quantos valores existem em Request.ServerVariables, olhei e encontrei 50 no total!
Código<%=Request.ServerVariables.count%>
Eu costumava sentir que havia muitos valores em Request.ServerVariables, mas agora vejo que ainda existem muitos, mas hoje vou falar sobre um dos valores ---- HTTP_Referer
Em primeiro lugar, sabemos que a aplicação mais comumente usada do HTTP_Referer é evitar envios externos.
Nas seguintes situações, Request.ServerVariables(HTTP_REFERER) é obtido normalmente na barra de endereços do navegador:
1) Use <a href=> diretamente
2) Formulário enviado com Submit ou <input type=image> (POST ou GET)
3) Envio de formulário usando JavaScript (POST ou GET)
Vamos dar uma olhada na situação em que Request.ServerVariables(HTTP_REFERER) não pode assumir o valor normalmente:
1) Link dos favoritos
2) Clique na página inicial ou endereço personalizado
3) Digite o endereço diretamente no navegador
4) Use Location.href ou Location.replace() do JavaScript
5) <%Response.Redirect%>
6) Redirecionamento <%Response.AddHeader%> ou <mete http-equiv=refresh>
7) Carregar endereço usando XML
Obviamente, Request.ServerVariables(HTTP_REFERER) não funciona corretamente na maioria dos casos. Apresentarei seu uso específico em detalhes em artigos futuros e também apresentarei as diferenças entre Request.ServerVariables(HTTP_HOST)Request.ServerVariables(SERVER_NAME).
fique atento!
Qual é a diferença entre Server_Name e Http_Host em Request.ServerVariables?
Se você não olhar de perto, não será capaz de perceber a diferença entre eles. Pesquisei muito na Internet, mas ainda não entendi, mas no final saiu uma frase que ficou bem clara: Http_Host pode solicitar uma Server_Port diferente de 80. Simplificando, Http_Host=Server_Name:Server_Port.
Já publiquei um artigo sobre a função de Http_Referer e agora irei combiná-lo para escrever uma função ASP que evite envios externos.
Copie o código da seguinte forma:function ChkPost()
dim server_v1,server_v2
chkpost=false
server_v1=Cstr(Request.ServerVariables(HTTP_REFERER))
server_v2=Cstr(Request.ServerVariables(SERVER_NAME))
If Mid(server_v1,8,Len(server_v2) ) <>servidor_v2 então
chkpost=False
else
chkpost=True
end If
end function
Select Case
Se desejar selecionar um dos vários conjuntos de códigos para executar, você pode usar a instrução SELECT:
Copie o código da seguinte forma:
select case payment
case Cash
msgbox Você irá pagar em dinheiro
Visa
msgbox Você vai pagar com visa
case AmEx
msgbox Você vai pagar com American Express
case Else
msgbox Método de pagamento desconhecido
final
Como funcionao
código de seleção acima: Primeiro, precisamos de uma expressão simples (geralmente uma variável), e essa expressão será avaliada uma vez. Em seguida, o valor da expressão é comparado com o valor de cada caso e, se houver correspondência, o código correspondente ao caso correspondido é executado.