В следующих ситуациях Request.ServerVariables("HTTP_REFERER") обычно получается из адресной строки браузера:
1. Используйте <a href> напрямую
2. Форма отправлена с помощью Submit или <input type=image> (POST или GET).
3. Используя Jscript для отправки формы (POST или GET)
, давайте рассмотрим ситуацию, когда Request.ServerVariables("HTTP_REFERER") не может нормально принять значение:
1. Ссылка из Избранного
2. Нажмите «Домой» или индивидуальный адрес.
3. Используйте Jscript location.href или location.replace().
4. Введите адрес прямо в браузер.
5.<%Response.Redirect%>
6.<%Response.AddHeader%> или <meta http-equiv=refresh> перенаправление
7. Используйте XML для загрузки адреса.
Очевидно, что Request.ServerVariables("HTTP_REFERER") не будет работать должным образом в большинстве случаев. Давайте рассмотрим пример:
ссылка.asp
<%
response.write "Вы пришли: " & request.servervariables("http_referer")
%>
ref.htm
<%
Response.AddHeader "Обновить", "10;URL=ref.asp"
%>
<meta http-equiv='refresh' content='10;URL=ref.asp'>
<form Method=GET action=ref.asp name=getform>
<input type=submit value=' Идите туда (GET) >> '>
<input type=image style='cursor:hand'>
</форма><p>
Посмотрите, что выдаст приведенный выше код.
<метод формы = действие POST = ref.asp name = postform>
<input type=submit value=' Идите туда (POST) >> '>
<input type=image style='cursor:hand'>
</form><p>
<a href='ref.asp'>Прямая ссылка<p>
<a href='#' onclick='window.location.href="ref.asp";return false;'>javascript location</a>
<a href='#'onclick='window.location.replace("ref.asp");return false;'>javascript replace</a>
<a href='#' onclick='document .getform.submit();return false;'>javascript GET</a>
<a href='#' onclick='document.postform.submit();return false;'>javascript POST </a>