[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не работает функция setcookie
Страницы: 1, 2
OleKh
Скрипт из учебника LISTING 19.3 A Script to Track Users Using Cookies and a MySQL Database

Не устанавливается значение из функции 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();

}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.