日期:2014-05-18  浏览次数:20677 次

再问搜索引擎关键字字符串的读取问题(急急!!)
比如:
我在百度的文本框中输入:csdn.net 这时地址栏中显示:http://www.baidu.com/s?wd=csdn.net&cl=3 在google中输入后显示:http://www.google.cn/search?hl=zh-CN&q=csdn.net&meta=&aq=f 这时连接指向:http://csdn.net/ 点击后进入csdn.net主页,我现在想在csdn.net的主页(这里相当于是我自己的网站)中读取带有关键字的字符串http://www.baidu.com/s?wd=csdn.net&cl=3或者http://www.google.cn/search?hl=zh-CN&q=csdn.net&meta=&aq=f 
我用的方法: string strvcome=""; 
  if (Request.QueryString["referer"] != null) 
  { 
  strvcome = Request.QueryString["referer"].ToString(); 
  } 
可是取不到值的,希望得到帮助先谢谢大家了!!
年前发帖:http://topic.csdn.net/u/20080201/16/8b16a6b2-7038-471d-bf61-27f1152a39f3.html
lemong提示监视数据包有referer属性,可我不知如何监测几取值,望指教!
  


------解决方案--------------------
取referer是正确的做法,如果referer是空置,请看看你测试所用的机器是否有什么安全防护软件。例如Norton等杀毒、防火墙软件,会把浏览器请求中的所有referer删除,导致你的网站获取不到值。
------解决方案--------------------
Request.QueryString["referer"]?referer参数哪来的?
你的意思是取Request.UrlReferrer.ToString()吧
------解决方案--------------------
使用Request.UrlReferrer时注意: 
1. 如果上一页面使用document.location方法导航到当前页面,Request.UrlReferrer返回空值
2. 如果有A,B两个页面,在浏览器中直接请求A页面,在A页面的中Page_Load事件中导航到B 页面,则 Request.UrlReferrer返回空。因为 在Page_load事件中页面还未初始化,所以无法记录当前页的信息,导航到b页面也就无法获得上一页面的信息
3. 点击刷新按钮不会改变Request.UrlReferrer
------解决方案--------------------
1 首先在Page_load中获得并储存该信息

Page_load(object obj,EventArgs e)
{
if(!IsPostBack)
{
if(Request.UrlReferrer!=null) // 
{
ViewState["UrlReferrer"]=Request.UrlReferrer.ToString();
}
}
}

1) 页面回发后会改变Request.UrlReferrer,将其指向当前页面,所以需要进行判断:只有在第一次请求页面的时候才储存该信息

2) 因为可能“上一次”的url不存在,所以需要进行判断,只有在Request.UrlReferrer存在的情况下才进行储存




2. 然后在返回函数中使用该信息

void Return()

{

if(ViewState["UrlReferrer"]!=null)

Response.Redirect(ViewState["UrlReferrer"].ToString();

}


------解决方案--------------------
up
------解决方案--------------------
C# code

  Server.UrlDecode("%C9%CF%BA%A3%D0%C5%CF%A2%B7%A2%B2%BC");

------解决方案--------------------
Server.UrlDecode("%C9%CF%BA%A3%D0%C5%CF%A2%B7%A2%B2%BC");
------解决方案--------------------
用JS document.referrer