Topic: cookie error?
håller på med en liten räknare, problemet är att den räknar upp värderna med 2 istället för 1 i explorer. i phoenix funkar de perfekt.
värderna i $config[] hämtas innan detta scriptet körs från databasen.
jag måste ju ha gjort något galet, stirrat mig blind för länge nu..
<?php
session_start ();
if (isset ($_SESSION['counters']) && isset ($_COOKIE['counter_besok'])) { // sessionen + cockie e satta = redan besokt sidan dessa session + forut
// rakna upp besok denna session
$_SESSION['counters']++;
// update sidvis cookie
setcookie ("counter_sidvis", $_COOKIE['counter_sidvis'] + 1, time () + 31536000);
// uppdatera sidvisningar i databasen
$res_c1 = mysql_query ("UPDATE common SET sidvis = (sidvis+1) WHERE id = '1'") or die (mysql_error ());
// variables for later use
$visits['unika'] = $config['unika'];
$visits['besok'] = $config['besok'];
$visits['egna'] = $_COOKIE['counter_besok'];
$visits['egna_sid'] = $_COOKIE['counter_sidvis'] + 1;
}
elseif (!isset ($_SESSION['counters']) && isset ($_COOKIE['counter_besok'])) { // sessionen inte satt + cockie satt, forsta besok nu, besokt sidan forut
// satt sessionen till 1
$_SESSION['counters'] = 1;
// rakna upp cookien med 1
setcookie ("counter_sidvis", $_COOKIE['counter_sidvis'] + 1, time () + 31536000);
setcookie ("counter_besok", $_COOKIE['counter_besok'] + 1, time () + 31536000);
// uppdatera sidvisningar + besok i databasen
$res_c2 = mysql_query ("UPDATE common SET sidvis = (sidvis+1), besok = (besok+1) WHERE id = '1'") or die (mysql_error ());
// variables for later use
$visits['unika'] = $config['unika'];
$visits['besok'] = $config['besok'] + 1;
$visits['egna'] = $_COOKIE['counter_besok'] + 1;
$visits['egna_sid'] = $_COOKIE['counter_sidvis'] + 1;
}
else { // forsta besoket nagonsin
// satt sessionen till 1
$_SESSION['counters'] = 1;
// satt cookien till 1
setcookie ("counter_sidvis", 1, time () + 31536000);
setcookie ("counter_besok", 1, time () + 31536000);
// uppdatera sidvisningar, besok och unika besok i databasen
$res_c3 = mysql_query ("UPDATE common SET sidvis = (sidvis+1), besok = (besok+1), unika = (unika+1) WHERE id = '1'") or die (mysql_error ());
// variables for later use
$visits['unika'] = $config['unika'] + 1;
$visits['besok'] = $config['besok'] + 1;
$visits['egna'] = 1;
$visits['egna_sid'] = 1;
}
$visits['sidvis'] = $config['sidvis'] + 1;
$visits['egna_sess'] = $_SESSION['counters'];
?>
edit: det är alltså dessa variabler som räknas upp 2 ggr i explorer:
$visits['sidvis']
$visits['egna_sid']
$visits['egna_sess']
edit2: syntax highlighted version
http://hellburner.net/pun/viewtopic.php?id=4