» »

Tracking v PHPju

Tracking v PHPju

poweroff ::

Rad bi naredil nekakšen števec dostopov na svojo stran, vendar tako da bi štel koliko je posamezen uporabnik aktiven.
Torej: rad bi dobil userja, ki je bil najbolj aktiven v posamezni seji, in userja, ki je bil najbolj aktiven nasploh.

Prvi primer se da rešiti s session ID.
Nekako takole:
< ? php
// Initialize session
$count_user = 0;
session_start();

session_register("count_user");

$count_user++;

echo "To stran si v tej seji reloadal že: $count_user x

";

? >
Zadeva deluje. Če pritisneš reload se števec poveča. Če odpreš novo okno, se v tistem oknu postavi na 1.

Sedaj pa problemček. Session ID se shrani v cookie. Kaj če uporabnik ne uporablja cookijev? Nekako domnevam da se da zadevo rešiti z QUERY_STRINGom.

No, bolj je problem kako zadevo rešiti s cookiji?
Domnevam da uporabniku podtakneš cookie (če ga ne uporablja, pa nič), ki ima expire time nastavljen na 100 let...? Kako to narediti?

Potem pa še končna zadeva... na celem sajtu uporabljam eno skripto, ki vedno kliče določen HTML file - tam je definiran design strani.
Približno se mi sicer sanja, da bi moral skripto klicati iz te datoteke, vendar ne vem kako.
Poleg tega se ta datoteka vedno vključi v v sako podstran. Recimo če prikažem krneki.php, pa clanek.php, pa clanek.php?id=2002312, vedno se kot html output sprocesira tudi ta datoteka. Vedno pa je drug URL.
Ergo - bi se dalo v tej moji skripti ugotoviti kakšen je URL iz katerega je skripta klicana?
Namreč - če bi se to dalo, potem bi lahko na podlagi tega podatka, session Idja in časa ugotovil iz katere podstrani na katero naslednjo podstran je uporabnik šel.

Any help?

darh ::

Sedaj pa problemček. Session ID se shrani v cookie. Kaj če uporabnik ne uporablja cookijev? Nekako domnevam da se da zadevo rešiti z QUERY_STRINGom

ja... namesto da kličeš vrednost sessionID z $HTTP_COOKIE_VARS, jo prebereš z $HTTP_GET_VARS....

No, bolj je problem kako zadevo rešiti s cookiji?Domnevam da uporabniku podtakneš cookie (če ga ne uporablja, pa nič), ki ima expire time nastavljen na 100 let...? Kako to narediti?


int setcookie ( string name [, string value [, int expire [, string path [, string domain [, int secure]]]]])
All the arguments except the name argument are optional. If only the name argument is present, the cookie by that name will be deleted from the remote client. You may also replace any argument with an empty string ("") in order to skip that argument. The expire and secure arguments are integers and cannot be skipped with an empty string. Use a zero (0) instead. The expire argument is a regular Unix time integer as returned by the time() or mktime() functions. The secure indicates that the cookie should only be transmitted over a secure HTTPS connection.


Ergo - bi se dalo v tej moji skripti ugotoviti kakšen je URL iz katerega je skripta klicana?

$SCRIPT_FILENAME
The absolute pathname of the currently executing script.
$PATH_TRANSLATED
Filesystem- (not document root-) based path to the current script, after the server has done any virtual-to-real mapping.
$SCRIPT_NAME
Contains the current script's path. This is useful for pages which need to point to themselves.
$REQUEST_URI
The URI which was given in order to access this page; for instance, '/index.html'.



bo šlo ?

Excuses are useless! Results are priceless!

poweroff ::

Ne, to pa zato, ker dobim ime tega skripta, ne pa od kje je bil pognan. V bistvu imam se vedno tezavo s tem da zadevo includam v originalno skripto...

Originalna skripta je geeklog...

MasterBlaster ::

PHP zna session id voditi tudi preko url-ja (query string). V php.ini nastaviš session.use_cookies = 0. Sedaj se avtomatsko v vsak link doda ?(ime session spremenljivke)=...

?e te zanima, kaj vse dobiš iz web serverja , daj v en php naslednji vrstico:
print_r(get_defined_vars());
?>
Izpiše ti vse trenutno definirane spremenljivke z vrednosmi.

Kar se pa ti?e statistike, jo lahko narediš v eni datoteki, potrm pa jo vklju?iš v vse druge php-je
...
include("datoteka_ki_vsebuje_statistiko");
...
?>

poweroff ::

OK, naredim takole:

$cookie_life = 3*24*3600;
$ID = "Matthai";
$firstlogin = $ID . "_first";
$time = time();

Setcookie($firstlogin,$time,time()+$cookie_life,"/");

Rad bi pa naredil takole:
1. preveri če cookie ni že nastavljen.
2. če ni, ga nastavi!
3. če je, samo preberi vrednost ven

poweroff ::

Heh, sem ze ugotovil...

// Initialize session
session_start();

// Register session and set number of session visits variable to 1
if (!session_is_registered('sess_visits')) {
session_register('sess_visits');
$sess_visits = 1;
}
else {
$sess_visits++;
}

// Get session ID
$sessid = session_id();


// Cookie lives 3 days...
$cookie_life = 3*24*3600;
$time = time();

// If CountID is set, get it, else set it as first session ID at first login ever
if ($HTTP_COOKIE_VARS['CountID']) {
$cookie_globid = $HTTP_COOKIE_VARS['CountID'];
}
else {
Setcookie("CountID",$sessid,time()+$cookie_life,"/");
$cookie_globid = $sessid;
}

echo "Cookie ID: $cookie_globid";
echo "Session ID: $sessid>";
echo "IP naslov: $REMOTE_ADDR";
:D

darh ::

quick & dirty:



$cookie_name = $Matthai.'_first';

if ( !$cookie_value = $HTTP_COOKIE_VARS[$cookie_name ] )
setcookie($cookie_name,time(),time()+259200,"/");



that's all...


( vidm da predolgo pišem ;) )
Excuses are useless! Results are priceless!

Zgodovina sprememb…

  • spremenil: darh ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Podvojeni session ID-ji v PHP?

Oddelek: Izdelava spletišč
61413 (1312) poweroff
»

piškotki

Oddelek: Izdelava spletišč
101977 (1865) Loki
»

oop+php+sessions

Oddelek: Izdelava spletišč
152458 (2066) cahahopie
»

PHP logiranje na stran

Oddelek: Programiranje
141387 (1113) ahac
»

cookie+php

Oddelek: Programiranje
81188 (1043) darh

Več podobnih tem