在第一次访问网站时设置推荐人


Set referer on first visit to site

我有一个网站,在头文件中的电话号码需要根据推荐人改变。例如,如果有人通过谷歌访问网站,电话号码与直接访问网站的电话号码是不同的。我有它的工作,除了当用户去到网站上的不同页面。代码检查推荐人并将号码更改为直拨号码。我想要的是在用户第一次访问网站时由推荐人设置的数字,并且它不会改变。我认为cookie或会话是解决方法,我只是不确定代码应该如何构建。

if (!empty($_SERVER['HTTP_REFERER'])) //user has come via search engine or a page within our site
{
$referer = $_SERVER['HTTP_REFERER'];
if (strpos($referer,'google') !== false) {
$callin_number='1-444-444-4444';
$callin_dialer=preg_replace("/[^0-9,.]/", "", $callin_number);
}   
elseif (strpos($referer,'bing') !== false) {
$callin_number='1-111-111-1111';
$callin_dialer=preg_replace("/[^0-9,.]/", "", $callin_number);
}
else {
$callin_number='1-222-222-2222';
$callin_dialer=preg_replace("/[^0-9,.]/", "", $callin_number);
}
}
else { //user has come directly to site
$callin_number='1-333-333-3333';
$callin_dialer=preg_replace("/[^0-9,.]/", "", $callin_number);
}

如果你想使用session或cookie:

semi-pseudo:

<?php
session_start();
if ( !isset( $_SESSION['referer'] ) )
{
   put your code here, and put whatever you need to session:
   $_SESSION['referer'] = ...
   $_SESSION['dialin'] = ....
}

并在代码中使用$_SESSION['referer etc']而不是$referer etc

$_SESSION['referer etc']将在下一个页面加载时可用,上面的IF条件在下次加载时将为false。

cookie只是有点不同:http://php.net/manual/en/function.setcookie.php