1 (edited by gribber 2003-01-28 22:35)

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.. smile

<?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 smile
http://hellburner.net/pun/viewtopic.php?id=4

Re: cookie error?

Jag testade och det verkar funka fint här. Är du helt 100 på att det är den här koden som är fel?

"Programming is like sex: one mistake and you have to support it for the rest of your life."

3 (edited by gribber 2003-01-28 22:42)

Re: cookie error?

Kennel wrote:

Jag testade och det verkar funka fint här. Är du helt 100 på att det är den här koden som är fel?


nej? smile

men ja fattar inte riktigt vars de går fel från det att jag kör den delen till att ja skriva ut värderna.. eller så är jag bara för trött idag smile

väntar bara på att ja hittar de där "skjut mig" misstaget =P

edit: men de ja inte fattar e hur de kan funka i ena browsern (phoenix) å inte i explorer, har testat på flera burkar med explorer i övrigt också

edit2: nu testade jag på en annan burk med phoenix också, de funkade fint där.. grml!

Re: cookie error?

Jag är fan för trött nu. Ska tänka på det imorgon :-)

"Programming is like sex: one mistake and you have to support it for the rest of your life."

5 (edited by gribber 2003-01-29 00:11)

Re: cookie error?

hm, nu har ja hittat en lösning fast endå inte smile

döper jag om index.php till något annat så funkar de, bara med index.php de inte funkar..

dax för knark!


edit: rättare sagt funkar de inte med alla som står med i DirectoryIndex i httpd.conf till apache..

6 (edited by gribber 2003-01-29 11:11)

Re: cookie error?

nu testade jag att flytta de från min dev server som inte e riktigt up-to-date + att ja inte minns hur confen på den va (gaaammel server) till min vanliga, funka inte där heller.. börjar få slut på idéer..

kan de ha något med att cookies hanteras olika i ie mot andra browsers? måste ju finnas en lösning på de hela i sånna fall smile

Re: cookie error?

fler närmare undersökningar, kör ie nån jevla dubbelrequest av na slag? för scriptet räknar ju upp värderna i databasen 2 ggr också vilket måste betyda att den kör något sånt. mycket mysko detta iaf tycker jag

8 (edited by gribber 2003-01-29 12:16)

Re: cookie error?

nu jevlar, nu har ja hittat felet..

denna rad ligger felet i:

<img src="" alt="Detta är en bild som inte funkar" width="350" height="200">

ingen bildlänk = den försöker använda indexsidan som bild = 2 laddningar..

nu har ja suttit å tagit bort rad efter rad å testat imellan, tog sin tid.. 2000 rader! urk

edit2:

anledningen till att funka när ja döpte om den till något annat va att de då inte fanns någon indexfil att försöka ladda som bild.

Re: cookie error?

Haha, det var en svårhittad bugg må jag säga :-)

"Programming is like sex: one mistake and you have to support it for the rest of your life."

Re: cookie error?

jag skulle på ie att ja fått en dålig natts sömn smile