捕获和存储Referrer

时间:2012-05-04 10:02:27

标签: php insert http-referer

我在前面道歉这真的很简单,但让我很烦恼。我只用了一个星期左右的PHP工作,并且真正按需要学习。以下是我目前的问题。我正在尝试提取Google推荐关键字。管理,现在无法理解为什么它不会将值插入dbase表。

// capture referral url
$referringPage = parse_url( $_SERVER['HTTP_REFERER'] );
if ( stristr( $referringPage['host'], 'google.' ) )
{
  parse_str( $referringPage['query'], $queryVars );
  echo $queryVars['q']; // This is the search term used
}

// general form data insert
$sql="INSERT INTO refer_kws (kwid, keyword)
VALUES('','what value should I have here')";

if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
echo "";

mysql_close($con)

?>

我已经尝试了几个选项,他们只是继续输入数组作为值?但是当我使用“?echo $ _GET ['q']?”在页面上它工作正常并显示值?

我知道这很简单。我真的这么做但却无法得到它。

3 个答案:

答案 0 :(得分:0)

你不应该把数组放在''之间,这会使它成为一个字符串。因为数组的字符串值是“Array”,所以它将在数据库中存储“Array”。 VALUES('',$referringPage)

答案 1 :(得分:0)

您应该针对每种类型的网站单独进行查询,因为Google会使用“q”GET变量中的关键字向您发送客户,并修改表格以添加引荐主机:

 $referringPage = parse_url( $_SERVER['HTTP_REFERER'] );
 if ( stristr( $referringPage['host'], 'google.' ) ){
   parse_str( $referringPage['query'], $queryVars );
   // echo $queryVars['q']; // This is the search term used  --- no need to print this
   $sql="INSERT INTO refer_kws (`kwid`, `host`, `keyword`) VALUES('',  $referringPage['host'], $queryVars['q'])";

 } else {
    $sql="INSERT INTO refer_kws (`kwid`, `host`, `keyword`) VALUES('', $referringPage['host'], '')"; // other type of referrers -  you can insert the full REFERRER here!
 }

答案 2 :(得分:0)

只需检查以下代码可能会对您有所帮助,该值将被放置。

var_dump($referringPage);
if ( stristr( $referringPage['host'], 'google.' ) )
{
  parse_str( $referringPage['query'], $queryVars );
  var_dump($queryVars);
  echo $queryVars['q']; // This is the search term used
}