Не устанавливается значение из функции setcookie("visit_id", $visit_data['id'],time()+(60*60*24*365*10),"/");
Функция вызывается из функции newuser().
Когда перемещаю setcookie("visit_id", $visit_data['id'],time()+(60*60*24*365*10),"/"); на верх скрипта и заменяю значение на число (например 300) - значение попадает в массив $_COOKIE.
Подскажите пожалуйста почему так получается?
$slength = 300;
$link = connect("localhost", "root", "", "work");
$user_stats;
if (!isset($visit_id)) {
$user_stats=newuser( );
print "Welcome, first time user!";
} else {
print "Welcome back $visit_id<P>";
$user_stats = olduser($visit_id);
}
function newuser(){
$visit_data=array(
'first_visit'=>time(),
'last_visit'=>time(),
'num_visits'=>1,
'total_duration'=>0,
'total_clicks'=>1
);
insert_visit($visit_data);
setcookie("visit_id", $visit_data['id'],time()+(60*60*24*365*10),"/");
return $visit_data;
}
function olduser($visit_id){
global $slength;
$now=time();
$visit_data = get_visit($visit_id);
if ( !$visit_data)
return newuser( );
$visit_data['total_clicks']++;
if ( ($visit_data['last_visit'] + $slength ) > $now)
$visit_data['total_duration']+=
($now - $visit_data['last_visit']);
$visit_data ['num_visits']++;
$visit_data ['last_visit']=$now;
update_visit($visit_data);
return $visit_data;
}
function connect ($host, $user, $pass, $db){
$link=mysql_connect($host, $user, $pass) or
die ("Couldn't connect to MySql");
mysql_select_db($db, $link)
or die ("Couldn't open $db:".mysql_error());
return $link;
}
function get_visit($visit_id){
global $link;
$query="SELECT * FROM track_visit WHERE id=$visit_id";
$result=mysql_query($query, $link);
if (!mysql_num_rows($result))
return false;
return mysql_fetch_assoc($result);
}
function update_visit (&$visit_data){
echo "<br>";
var_dump($visit_data);
global $link;
echo "<br>";
$update_pairs = array();
foreach ( $visit_data as $field => $val)
{
array_push ($update_pairs, "$field=$val");
}
$query="UPDATE track_visit SET ";
$query .= implode (", ", $update_pairs);
$query .= " WHERE id = '".$visit_data['id']."'";
mysql_query($query, $link);
}
function insert_visit (&$visit_data){
global $link;
$query="INSERT INTO track_visit ( ";
$query .= implode(", ", array_keys($visit_data) );
$query .= " ) VALUES ( ";
$query .= implode(", ", array_values($visit_data) );
$query .= " );";
$result=mysql_query($query, $link);
global $link;
$visit_data['id']=mysql_insert_id();
}